通过AJAX将JavaScript值返回给PHP

Yes, there are lots of topics about this, but no one really posts the full code so I do not understand what to do. I would appreciate help. I am using some custom API (jqgrid) and will explain what some things do.

This is how it goes:

First there is a PHP function

$getUnitID = <<<getUnitID //This is how you start a javascript function in this API
function(rowid, selected)
{
    var selr= null;
    if(rowid != null){ 
        selr = jQuery('#grid').jqGrid('getGridParam','selrow');
        return selr;
        } //All this does is give me a value based on a row I click. It works great.

}
getUnitID; // End of JS function

Now I know I need to execute some AJAX. But I don't know when or where or how. I know about reading the manual but that doesn't always help. I am still lost (it's been 3 hours). Here is what I gather should be the AJAX, but where does it go?

$.ajax({
        type: "POST",
        url: "webpage.php",
        dataType: "json",
        data: selr,      
        success: function(data) { 
        alert (data);
        }
    });

I don't know how to implement that AJAX call.

The final goal is to place the data from var "selr" into a simple php function such as $myVariable.

Thank you for the help and time.

This is how I've tried to combine

$getUnitID = <<<getUnitID
function(rowid, selected)
{
var selr= null;
if(rowid != null){ 
    selr = jQuery('#grid').jqGrid('getGridParam','selrow');
    //alert (selr);
    return selr;
    }
    $.ajax({
            type: "POST",
            url: "getId.php",
            dataType: "json",
            data: {selr:selr},      
            success: function(data) { 
            alert (data);
            }
        });

}
getUnitID;
$grid->setGridEvent('onSelectRow',$getUnitID);
$pdfButton = array("#pager",array("caption"=>"Create PDF", "onClickButton"=>"js: function(){parent.location='/pdftkphp/example/download.php?id= ". 6 ." '}"));

And the seperate PHP page is just

<?php
$rId = $_POST["selr"];
echo $rId + "some ajax stuff";
?>
dtukyb8095
dtukyb8095 是。我意识到的一个问题是我的url参数是同一页面,而不是新页面。感谢您指出这一点。
接近 7 年之前 回复
dongronge3732
dongronge3732 ajax调用中的数据变量是将通过post发送到服务器的数据。如果你想给它一个特定的名字,你将不得不这样做:data:'myPostName='+selr。
接近 7 年之前 回复
dongtan6695
dongtan6695 你的webpage.php是什么样的?或者是上面的php文件?
接近 7 年之前 回复

1个回答



所以,希望这会有所帮助。 在您的AJAX调用中,您的 url </ code>正在调用webpage.php - 因此可能该页面应该等待传入的变量。 类似</ p>

  $ myVariable = $ _POST [“selr”]; 
</ code> </ pre>

所以,上面的陈述是 检查 POST </ code>是否有一个名为 selr </ code>的变量,我们必须告诉AJAX调用将变量发送为 selr </ code>,所以改变你的< AJAX调用中的code> data </ code>是一个键/值对:</ p>

  data:{selr:selr},
</ code> </ pre >

现在,带有参数 data </ code>的 success </ code>函数是您从PHP端返回 echo </ code>的数据。 所以说你有:</ p>

  $ myVariable = $ _POST [“selr”]; 
echo $ myVariable +“some ajax stuff”;
</ code> </ pre>

data </ code>现在将包含 echo </ code>的输出。 希望这有用。</ p>
</ div>

展开原文

原文

So, hopefully this helps. In your AJAX call, your url is calling webpage.php - so presumably that page should be waiting for an incoming variable. Something like

$myVariable = $_POST["selr"];

So, that above statement is checking the POST for a variable called selr, well, we have to tell the AJAX call to send your variable as selr, so change your data in the AJAX call to be a key/val pair:

data: {selr:selr}, 

Now, that success function with the parameter data is the data you echo back from your PHP side. So say you have:

 $myVariable = $_POST["selr"];
 echo $myVariable + "some ajax stuff";

Your data will now contain the output of that echo. Hope this was helpful.

dsuw85815
dsuw85815 这个return语句将在AJAX执行之前离开函数,fyi
接近 7 年之前 回复
doujiyong7604
doujiyong7604 我知道了。 再次感谢您的帮助。 如果你有更多的输入(我必须离开),我已经发布了上面的完整代码,非常感谢!
接近 7 年之前 回复
dougua9165
dougua9165 你上面的那个函数(rowid,选中),我想你想要在它的末尾那个函数内部进行AJAX调用。 这样每次执行该函数时它都会触发。
接近 7 年之前 回复
dongni8969
dongni8969 那么AJAX函数不应该总是坐在JS函数里面? 并且“可以访问那个selr变量”,这实际上是我一直在遇到的问题,对吧? 如何访问该selr var? 如果我的AJAX函数不在JS函数内部,那么我仍然无法访问它。我很困惑
接近 7 年之前 回复
doucheng8471
doucheng8471 无论您需要在哪里调用它,可能在单击处理程序中,只需确保它可以访问该selr变量。
接近 7 年之前 回复
doule6314
doule6314 感谢您的帮助,我实施了这些更改。 接下来的问题是,在哪里(对不起,我真的需要文字指导)我是否坚持使用AJAX功能? 即JS代码的哪一部分? 现在我把它放回到selr之后;}
接近 7 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐