jQuery/Ajax:如何将JS变量传递给特定的PHP函数

kee*_*279 1 php ajax jquery post

我是PHP的新手,之前从未使用过Ajax,所以我希望有人可以帮助我.

我有一个单独的functions.js文件,它存储我用于网站页面的所有JS.
到目前为止,所有与db的交换都是直接在页面上完成,到目前为止工作正常,但现在我有一个场景需要从JS文件启动它.

我的想法是我可以创建一个单独的PHP文件(ajax.php)来托管仅用于此目的的函数,然后通过Ajax将数据从JS文件传递到此PHP文件.

到目前为止,我有以下内容,但由于ajax.php文件中有多个函数,我不知道如何将其传递给我需要的特定函数.另外,我不确定我的Ajax调用是否设置正确.

有人可以帮我解决这个问题吗?也许还可以用几句话来解释你的答案?基本上,这里我想将JS变量" itemID"传递给PHP函数fetchTransMain,其中这应该用于变量$itemID(变量$ trans在PHP中生成).

更新:我还需要知道如何从JS函数中获取PHP函数的结果.我还没有找到一种方法,也许是用Ajax GET调用?

我在functions.js文件中有什么:

var itemID = "someID";

$.ajax({
    url: "ajax.php",
    type: "post",
    cache: "false",
    data: itemID,
    success: function(){
        alert("success");
    },
    error: function(){
        alert("failure");
    }
});
Run Code Online (Sandbox Code Playgroud)

...并在我的ajax.php文件中:

function fetchTransMain($trans, $itemID){
    foreach($trans as $key => $val){
        if($val["ID"] == $itemID){
            echo $val["trans"];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

非常感谢,迈克

tax*_*ala 5

您必须将数据定义为对象:

$.ajax({
    url: "ajax.php",
    type: "post",
    cache: "false",
    data: {itemId: itemID},
    success: function(data) {
        console.log(data);
        alert("success");
    },
    error: function(){
        alert("failure");
    }
});
Run Code Online (Sandbox Code Playgroud)

然后:

$itemId = $_POST['itemId'];
function fetchTransMain($trans, $itemID){
    foreach($trans as $key => $val){
        if($val["ID"] == $itemID){
            echo $val["trans"];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)