我是PHP和JQuery的新手。
我有这个非常简单的PHP函数
function save($data)
{
$allData = load();
array_push($allData, $data);
global $filePath;
$fp = fopen($filePath, 'w+') or die("I could not open $filePath.");
fwrite($fp, serialize($allData));
echo "{status:\"success\" , result:" . (string)(count($allData) - 1) . "}";
fclose($fp);
}
从磁盘读取数组,聚合数据并返回结果。 我有这个JQuery代码:
$jQuery.ajax({
url: serverUrl,
type: "GET",
data: {method: "save", data: jQuery.param(pData)},
cache: false,
success: function (data) {
alert("data");
}
});
现在的问题是,如果我通过firefox中的url调用PHP方法,我得到的结果打印在屏幕上,如果我通过上面的jQuery代码调用此方法,它将写入文件但不会返回任何内容,我在“响应”选项卡下的firebug中看到什么。我哪里出错了?
感谢。
答案 0 :(得分:3)
您在成功时提醒"data"
而不是data
。
尝试回显正确格式化的JSON:
echo '{"status": "success", "result": "'. (string)(count($allData) - 1) .'"}';
然后提醒:
alert(data.status);
答案 1 :(得分:0)
$jQuery.ajax({
url: serverUrl,
type: "GET",
data: {method: "save", data: jQuery.param(pData)},
dataType: 'json', //added by me
cache: false,
success: function (data) {
alert("data");
}
});
并在你的php中使用更安全的方法
$var = array('status' => 'success', 'result' => count($allData) - 1 );
echo json_encode($var);