[英]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.