如何停止jQuery帖子页刷新

时间:2013-02-28 14:55:03

标签: php jquery forms post refresh

我通过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)的输出是未定义的。数据以字符串形式传递。如何在正确的变量中获得正确的信息?

2 个答案:

答案 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);