【发布时间】:2015-04-07 15:12:17
【问题描述】:
我附上这篇笔记的代码的目的是 1) 以表格形式收集数据。 2)发布到一个PHP文件,收集的信息被转换成一个JSON 3) 将 JSON 信息写入文件`` 4) 返回当前的JSON,写入HTML中名为the-return的ID。
除了第 4 步之外,上述所有方法都有效,我似乎可以找到错误。我希望有人能看看并告诉我我误入歧途的地方。 .我知道我可以将 JSON 数据写入文件,然后将文件的全部内容读取到 jsonReadArea 。我还希望能够从 PHP 文件中将当前 JSON 返回到 jQuery 成功函数并显示它。昨晚用调试器进一步调查,我似乎返回了一个对象,并且没有被正确访问。 在 HTML 中,你会发现一个名为“the-return”的文本,上面写着“HTML 在成功时被替换。在 jQuery post 函数中,你会看到成功和错误返回都尝试写入 this 。我不这样做”正确的做法是在 PHP 文件中,如果成功则将 JSON 发送回 jQuery 帖子,如果不成功则返回错误语句并写入“the-return”DIV 区域。 javaScript jQuery:
$("#Jform").submit(function()){
data = $('#Jform').serialize();
$.ajax({
type: "POST",
dataType: "data",
url: "processJson.php",
data: data,
success: function (msg) {
displayRet(msg);
},
error: function (msg) {
console.log(msg);
$("#the-return").html(msg);
}
});
return false;
});
// load() functions
$('#jsonReadButton').click(function () {
$('#jsonReadArea').load('storage/jsonStorage.txt');
});
function displayRet(inc) {
$("#the-return").html(
"Return String: Name: " + inc["name"] +
"<br />Email: " + inc["email"] +
"<br />Gender: " + inc["gender"] +
"<br /Temperature: " + inc["temperature"] +
"<br />terms " + inc["terms"] +
"<br />JSON: " + inc["json"]
);
alert("Form submitted successfully.\nReturned json: " + inc);
}
现在是 PHP 代码:
<?php
/*
* PHP Filters
* http://www.w3schools.com/php/php_filter.asp
*
*/
$error = FALSE;
$name = filter_input(INPUT_POST, "name", FILTER_SANITIZE_STRING);
$email = filter_input(INPUT_POST, "email", FILTER_VALIDATE_EMAIL);
$gender = filter_input(INPUT_POST, "gender", FILTER_SANITIZE_STRING);
$temperature = filter_input(INPUT_POST, "temperature", FILTER_SANITIZE_STRING);
$terms = filter_input(INPUT_POST, "terms", FILTER_SANITIZE_STRING);
$tempArray = array("name" => $name, "email" => $email, "gender" => $gender, "temperature" => $temperature, "terms" => $terms);
$jsonVal = json_encode($tempArray);
// Open file and test operation
$fileHandle = fopen('storage/jsonStorage.txt', "a");
if (!$fileHandle) {
$error = TRUE;
} else {
fwrite($fileHandle, $jsonVal);
fwrite($fileHandle, "<br />\n");
}
if ($error === FALSE) {
return $jsonVal;
} else {
return "An error occured";
}
【问题讨论】: