我通过PHP从MySQL数据库获取数据。我正在使用jQuery从PHP发送并获取数据。这是代码。
$.POST("SubmitCode.php", $("#questionCodeForm").serialize(),'json').done(function(data) {});
现在的问题是,一旦我发送这些数据,页面就会刷新。如何停止页面刷新。如果我删除'json'然后页面停止刷新,但问题是我想获得没有页面刷新的json数据。我怎么能这样做?
-------------------------------------------编辑后 - -------------------------------------------------- ------------------------- 这是更新的代码
$(document).ready(function() {
initialization();
codeSubmission();
});
function initialization() {
$("#answerForm").hide();
}
function codeSubmission() {
$("#submitButton").click(function(e) {
e.preventDefault();
$.post("SubmitCode.php", $("#questionCodeForm").serialize()).done(function(data) {
var questionName = data.questionName,
options = data.options,
pollingStatus = data.pollingStatus,
codeExist = data.codeExist;
alert(data);
alert(data[1]);
alert(questionName);
alert(options);
if(codeExist == true) {
$("#questionTitle").text("questionName");
for(rowNum=1;rowNum<=5;rowNum++) {
$("#checkbox-"+rowNum).val("Answer1");
$("#checkbox"+rowNum+"label").text("Answer"+rowNum);
}
$("#answerForm").slideDown(500);
} else if(codeExist == false) {
alert("This quiz code is invalid");
}
},'json');
//return false;
});
//return false;
}
现在的问题是alert(questionName)的输出是未定义的。数据以字符串形式传递。如何在正确的变量中获得正确的信息?
答案 0 :(得分:3)
请改为:(注意回调函数的位置和小写的.post方法)
$.post("SubmitCode.php", $("#questionCodeForm").serialize(),function(data) {
//manipulate your data here
},'json');
同时确保触发帖子的内容不是实际链接,如果是,则需要停止发生默认操作。例如:
<a href="submit.php">Click here to submit</a>
的javascript:
$(a).click(function(e) {
e.preventDefault();
$.post("SubmitCode.php", $("#questionCodeForm").serialize(),function(data) {
//manipulate your data here
},'json');
});
答案 1 :(得分:0)
您还必须在客户端解析json。您可以使用
执行此操作obj = jQuery.parseJSON(data);