出于某种原因,我需要通过AJAX将ID
传递给同一页面上的PHP函数并运行查询并将结果返回给AJAX,然后AJAX会将最终结果追加到{{1 }}
当我做一些研究时,我遇到了这个解决方案,但它有一些缺点。
div
function1($_GET['id']);**//not getting the id's value**
AJAX请求(efund.phtml)
echo "This is function 1 AND id=".$param;**//this string must be
passed back to the previous ajax request.**
PHP(efund.phtml)
$.ajax({
type:'GET',
url:'efund.phtml',
data:"function_to_call=0?id"+cl[3],
success: function(data){
// alert('successful');
}
});
答案 0 :(得分:1)
在服务器/客户端之间进行通信的最常见方式往往是使用XML或JSON,对于您的情况,我建议您使用JSON:
$.ajax({
method: "GET",
url: "efund.phtml",
data: { function_to_call: 0, id: cl[3] }
})
.done(function( msg ) {
var obj = jQuery.parseJSON( msg );
alert( "ID obtained from server is " + obj.id );
});
然后在服务器中使用它们:
$_GET['function_to_call'] // To obtain 'function_to_call' param
$_GET['id'] // To obtain 'id' param
要从我推荐的服务器响应发回信息,请使用相同的方法并使用json_encode将数组解析为JSON并使用以下命令返回:
在你的情况下,对于function1,它将是:
function function1($param) {
return json_encode(array ( "id" => $param ) );
}
另外,也许你应该考虑是否应该为Http请求使用GET或POST。您可以在此处查看有关它的更多信息: www.w3schools.com/tags/ref_httpmethods.asp
编辑: 如果您遇到ajax请求问题,并且想要检查ajax请求是否正确执行,请修改Ajax代码,如下所示:
$.ajax({
method: "GET",
url: "efund.phtml",
data: { function_to_call: 0, id: cl[3] }
}).fail(function() {
alert( "error" );
}).always(function() {
alert( "complete" );
}).done(function( msg ) {
var obj = jQuery.parseJSON( msg );
alert( "ID obtained from server is " + obj.id );
});
答案 1 :(得分:0)
更改
data:"function_to_call=0?id"+cl[3],
到
data: {function_to_call: 0,id : cl[3]},
在这种情况下data
作为对象工作,很容易获取值。
根据您每次调用的唯一第一个条件,因为您正在通过function_to_call=0