获取ajax调用的输出

时间:2013-08-12 16:33:13

标签: php ajax jquery

我试图从ajax调用中获取输出的值。我得到的是NULL,我做什么。 我的猜测是我的代码结构错误,我希望知道ajax的人会发现我的错误:

我的php中有以下代码。这个代码可以工作,我已经测试过,它打印出预期的输出:

  $output_string = array();
            foreach ($resultfromdb as $key) {

               if (($key) && ($key[0]['username'] !="")) {
                   //echo "Username is already taken";
                   $output_string = array('outputmsg' => 'User name is already taken');       
               } else {

                   //$success = "User name is already in use";
                     $output_string = array('outputmsg' => 'User name is free for use');
               }                 
            }

           echo json_encode($output_string);

这是我的js。文件

// list all variables used here...
var
regform = $('#reg-form'),
memberusername = $('#memberusername'),
memberpassword = $('#memberpassword'),
memberemail = $('#memberemail'),
memberconfirmpassword = $('#memberconfirmpassword');

regform.submit(function(e) {  
       e.preventDefault();
        var memberusername = $(this).find("#memberusername").val();
        var memberemail = $(this).find("#memberemail").val();
        var memberpassword = $(this).find("#memberpassword").val();
        var memberconfirmpassword = $(this).find("#memberconfirmpassword").val();

       var url = $(this).attr("action");

       console.log(url);
        return $.ajax({
        type:'POST',
        url: $(this).attr("action"),
        dataType: 'json',
        data: {memberusername: memberusername, memberemail: memberemail, memberpassword: memberpassword},

        success: function(result){
               // $('#result_table').append(output_string);
               alert(result);
               alert(output_string);
               alert(result.output_string);
               console.log(result.output_string);
            } // End of success function of ajax form
        }); // End of ajax call 

});

both,alert和console.log打印null ...而不是变量$ output_string的值。有什么帮助吗?

提前致谢

1 个答案:

答案 0 :(得分:-1)

如果您的PHP代码运行良好并且正在创建数组,那么您必须在成功函数中解析JSON输出。

success : function(result){
    var responseData = $.parseJSON(result);
    alert(responseData.output_string);
}