我正在建立一个交易系统,而且我使用php来获取一些数据,但是当它到达时它是空的。这是我第一次使用AJAX而且我不知道自己做错了什么。这是我的代码:
脚本:
$(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文件是否正常工作。它回应了货币的名称,但未在脚本中收到。
提前致谢。
编辑:修正了错别字。
答案 0 :(得分:3)
您需要发送一个键/值对。您发送的所有内容都是没有params
密钥的值。
key
就是您在php $_REQUEST['params']
在浏览器控制台网络标签页中查看,您将看不到与手动放入地址栏的网址相同的网址
尝试
$.ajax({
type: "POST",
url: "currencies.php",
data: {params: params}, // object for key/value
success: function(data){
$('#result').html(data);
alert(data);
}
});
另请注意,您只能在php中打印json而不需要任何额外的echo
。否则将在ajax中获得json解析错误
就像一个FYI - 你可以直接从浏览器向雅虎发出同样的请求,而不需要服务器上的php代理。见YQL Console