2

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

4

2 回答 2

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');
});
于 2013-02-28T14:59:33.937 回答
0

您还必须在客户端解析 json。您可以使用

obj = jQuery.parseJSON(数据);

于 2013-02-28T19:01:44.900 回答