PHP数组 - jQuery引用问题

时间:2011-08-16 12:01:49

标签: php jquery ajax json

我有以下php:

1) echo json_encode(array('message' => 'Invalid Login Details: '.$user));

我也有以下内容:

2) $row = mysql_fetch_assoc($result);
   echo(json_encode($row));

现在考虑以下jQuery:

 $.ajax({
           type: "POST",
           url: "get_login.php",
           data: {username: getusername, password:getpassword, usertype:getusertype},
           dataType: "json",
           success: function(data) {
              $("#message_ajax").html("<div class='successMessage'>" + data.message +"</div>");
           }
        })

这成功(1)但不是(2)。这显然是因为jQuery需要一个包含消息变量的php响应。 (2)不符合这个...我不知道如何使这项工作,因为我使用不同的方法来创建数组...

如何让php中的$ row与jQuery中的data.message兼容?

3 个答案:

答案 0 :(得分:2)

尝试:

$data = array();
$data["message"] = "Valid request";
$data["row"] = mysql_fetch_assoc($result);
   echo(json_encode($data));

message = row:

$data = array();
$data["message"] = mysql_fetch_assoc($result);
   echo(json_encode($data));

或两行解决方案(受val启发):

$row = mysql_fetch_assoc($result);
   echo(json_encode(array("message" => $row)));

答案 1 :(得分:1)

尝试

$row = mysql_fetch_assoc($result);
   echo(json_encode(array('message'=>'I am the message','result'=>$row));

然后回答关于评论的第二个问题,类似于此的信息可以显示信息......

 $.ajax({
           type: "POST",
           url: "get_login.php",
           data: {username: getusername, password:getpassword, usertype:getusertype},
           dataType: "json",
           success: function(data) {
              $("#message_ajax").html("<div class='successMessage'>" + data.message +"</div>");
              var html = '';
              for(var i = 0; i<data.result.length;i++){
                 html +='<div>'+data.result[i].fname+'</div>';
               }
              $('#result').html(html);
           }
        })

当然,您需要在适用的地方编辑它。

答案 2 :(得分:0)

我相信你没有来自$row['message']的{​​{1}}。 您必须在mysql_fetch_assoc之前在数组上明确定义message键。


    $row = mysql_fetch_assoc($result);
    $row['message'] = 'Hello '.$row['username'];
    echo(json_encode($row));