簡體   English   中英

使用jQuery回調參數通過AJAX調用PHP函數

[英]Calling PHP functions through AJAX using jQuery callback parameters

我對使用jQuery的AJAX結果有疑問。

我已經定義了以下功能:

<script>
    function hello(callback, funct, val) {
        var ret = 0;
        console.log(val);
        $.ajax({
            type: 'GET',
            dataType: 'json',
            url: 'SGWEB/header.php',
            data: {
                'funct': funct,
                'val': val
            }
        }).done(function (data) {
            // you may safely use results here
            console.log(data);
            callback(data);
        });
    };

    function change() {
        hello(function (ret) {
                  console.log(ret);
                  $("#b1").text(ret);
              }, "hello", 1);
    }; 

    change();
</script>

SGWEB / header.php文件:

extract($_GET);
$validFunctions = array("readPin","hello");
if(in_array($funct, $validFunctions)) $funct();

// functions
// ....

function hello($val) {
    if ($val == 1) {
        echo "1";
    } else 
        echo "2";
}

我的問題是AJAX僅傳遞數據{'funct': funct}的第一個參數,並且可以正常工作,但是val被完全忽略(它總是回顯“ 2”)。

我該如何解決? 謝謝

您忘記了將$val參數傳遞給PHP中的函數。

更改此:

if (in_array($funct, $validFunctions)) $funct();

對此:

if (in_array($funct, $validFunctions)) $funct($val);

另一個問題是您的AJAX在您在dataType:'json'中定義JSON時期望它,但您沒有發送它。 我將像這樣重做您的ajax調用,以便您也可以看到其他錯誤:

$.ajax({
    type: 'GET',
    url: 'SGWEB/header.php',
    data: {
        'funct': funct,
        'val': val
    },
    success: function (result) {
        console.log(result);
        callback(result);
    },
    error: function (xhr, textStatus, error) {
        console.log(xhr);
        console.log(textStatus);
        console.log(error);
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM