我已经编写了一个Ajax代码,该代码在php文件中调用了一个函数。
queryURL = "http://<?php echo $_SERVER['SERVER_NAME'] ?>/MyPhpFile.php";
params = fromDate+" , "+to_Date;
$.ajax(
{
url: queryURL,
type: "post",
dataType: 'json',
async: false,
data:
{
funcName: "MyFunc",
values: params
},
complete: function (result) {
debugger;
doSth();
}
});
在我的php文件中:
if ($_POST) {
if (isset($_POST['funcName'])) {
if (function_exists($_POST['funcName'])) {
G::LoadClass('case');
$fName = $_POST['funcName'];
if (isset($_POST['values'])) {
$values = $_POST['values'];
$arrP = explode(",", $values);
echo call_user_func_array($fName, $arrP);
} else {
echo $fName();
}
}
}
}
fucnction MyFunc($fromDate, $toDate){
echo "1";
}
在浏览器调试器部分的“网络”选项卡中,我可以看到php文件仅被调用过一次。但是响应是重复的。
如果我的函数返回1,则响应为11。
答案 0 :(得分:1)
从echo
中删除echo call_user_func_array($fName, $arrP);
。只需使用call_user_func_array($fName, $arrP);