2015-04-25 2 views
1

Я строю торговую систему, и я использую php для получения некоторых данных, но когда она прибывает, она пуста. Это первый раз, когда я использую AJAX, и я не знаю, что я делаю неправильно. Вот мой код:Получение пустых данных в AJAX после POST

Сценарий:

$(document).ready(function() { 

    $('#submit').click(function(){ 

     //Get the values 
     var amount  = $('#amount').val(); 
     var from  = $('#from').val(); 
     var to   = $('#to').val(); 

     var params = 'select * from yahoo.finance.xchange where pair in ("' + from + to +'")'; 
     console.log(params); 
     $.ajax({ 
      type: "POST", 
      url: "currencies.php", 
      data: params, 
      success: function(data){ 
       $('#result').html(data); 
       alert(data); //I'm alerting because I was not receiving nothing at #result 

      } 
     }); 
    }); 
}); 

PHP:

$BASE_URL = "http://query.yahooapis.com/v1/public/yql"; 

$yql_query = $_REQUEST['params']; 
$yql_query_url = $BASE_URL . "?q=" . urlencode($yql_query) . "&format=json" . "&env=http://datatables.org/alltables.env"; 

$session = curl_init($yql_query_url); 
curl_setopt($session2, CURLOPT_RETURNTRANSFER,true); 
$json = curl_exec($session); 

$phpObj = json_decode($json); 
$conversiones = $phpObj->query->results->rate; 
$title = new ArrayObject(); 


$title = "$conversiones->Name"; 

echo $title; 

я напечатал:

params=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20("MXNUSD") 

в URL, чтобы увидеть, если файл PHP работает и это. Он перекликается с именем валют, но не получен в скрипте.

Заранее спасибо.

EDIT: Исправлены опечатки.

+0

Добавить 'error' обработчик функции АЯКС так посмотреть, что идет не так – adeneo

+0

О, и' $ phpObj' не то же самое, как '$ phpObj2', у вас есть опечатка там – adeneo

+0

Прежде всего, я думаю, вам необходимо передать из и в php-файл, а затем обработать SQL-инструкцию. Это не решает вашу проблему, но все же)) –

ответ

3

Вам необходимо отправить пару ключ/значение. Все, что вы отправляете, - это значение без ключа params.

key является то, что вы используете в вашем PHP $_REQUEST['params']

Look в вашем браузере вкладки консоли сети, и вы не будете видеть один и тот же адрес, как то, что вы вручную поместить в адресной строке

Попробуйте

$.ajax({ 
     type: "POST", 
     url: "currencies.php", 
     data: {params: params}, // object for key/value 
     success: function(data){ 
      $('#result').html(data); 
      alert(data); 

     } 
    }); 

Также обратите внимание, что вы можете распечатать json без дополнительных echo в php. В противном случае будет получена ошибка json parse в ajax

Как и FYI - вы можете сделать этот же запрос прямо на Yahoo прямо из браузера без прокси-сервера в php на вашем сервере. См YQL Console

+0

Спасибо за ваш быстрый ответ, он решил мою проблему, и вы дали мне вторую альтернативу. Я сделал это с php на своем сервере, потому что я пытаюсь узнать больше об этом, так как я новичок в php. Большое спасибо! – HiGonz

Смежные вопросы