在jQuery函数中将结果返回给AJAX中的PHP变量

时间:2013-11-19 13:53:20

标签: javascript php jquery ajax jqgrid

所以这是我曾经尝试过的最艰难的事情,经过一天的搜索,我找不到任何答案。请注意,我正在使用一些自定义的jQuery API,并将解释它的作用。

安装程序是一个包含jQuery函数的php页面。该jQuery函数调用API以基于我单击的行返回结果(它是jQgrid,基本上看起来像在线excel表)。这工作正常,但目标是将结果从jQuery函数中获取并将其存储在PHP变量中。我只是一无所知......

主要PHP页面

$getUnitID = <<<getUnitID //This is the jQuery function. It is stored in a php variable for use in other functions of the API
function(rowid, selected)
{
    var selr= null;
    if(rowid != null){ 
        selr = jQuery('#grid').jqGrid('getGridParam','selrow'); //This will give ma a number result based on the row I selected. Works fine.
        $.ajax({ // I believe I need to use AJAX so here is my attempt
            type: "POST",
            url: "getId.php", //This is another PHP page for the reuslt. See below
            dataType: "json",
            data: {selr:selr},      
            success: function(data) { 
                alert (data); // This will successfully show me the row number I chose as an alert. But I don't want an alert, I want it stored as a php variable in my main document to use elsewhere.

            }
        });
    }
}
getUnitID; //End of the function
$grid->setGridEvent('onSelectRow',$getUnitID); //Just an event that calls the function upon clicking the row
$rowResult = ??????? //I need this variable to store the result of that AJAX call or that function call

getId.php

<?php
$rId = $_POST["selr"];
echo $rId;
?>

基本上,我不知道为什么我使用AJAX,因为我的结果仍然停留在主jQuery函数中。如何以上帝的名义在外面找到这个功能?!?!?!?!?!?!?!我需要$_GET POST getId.php加入{{1}}的'{l}'吗?如果是这样,怎么样?

谢谢,我爱你们。

1 个答案:

答案 0 :(得分:1)

当您收到AJAX请求并收到回复时,PHP已经进入睡眠状态。您无法将数据返回到同一页面的PHP代码。在PHP已经完成服务器上的工作后,您的jQuery很快就会在客户端计算机上开始执行。

您的JavaScript函数是否存储在PHP变量中并不重要。 PHP将无法获得其输出。只有这样才能启动对该代码的另一个新请求并向其发送值。但是在同一个页面上的同一个请求中,它的 no no

如何将该数据发送到另一个PHP页面的示例

//Your existing jQuery
success: function(data) { 
 // alert (data); 
 var result=data;
 $.ajax({
 type: "POST",
 url: "anotherpage.php",
 data: { data: result }
});
}