如何在同一页面上发出AJAX请求并获取PHP脚本?

时间:2016-03-03 05:57:18

标签: php ajax

出于某种原因,我需要通过AJAX将ID传递给同一页面上的PHP函数并运行查询并将结果返回给AJAX,然后AJAX会将最终结果追加到{{1 }}

当我做一些研究时,我遇到了这个解决方案,但它有一些缺点。

  1. div
  2. function1($_GET['id']);**//not getting the id's value**
  3. 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');    
        }
    });
    

2 个答案:

答案 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