使用Ajax从mysql中获取行

时间:2014-04-20 13:04:53

标签: javascript php jquery mysql ajax

我正在尝试使用ajax从mysql db中检索一行,代码如下:

jQuery.ajax({
                        type: 'POST',
                        url: 'Connection.php',
                        dataType: 'text',
                        data: {'query_id' : query_id},
                        success: function(response){
                            data = response;
                            alert(data['username']); //print undefined!!!
                        },
                        error: function(xhr, ajaxOptions, thrownError){
                            alert("thrownError");
                        }
                    });

这是我的mysql php代码:

<?php

    $con = mysql_connect('****','****','****');
    mysql_select_db("eBay",$con);

    $username = $_SESSION['username'];
    $query_id = $_POST['query_id'];

    $myquery = "SELECT * FROM  `Output` WHERE `username` =" '$username';
    $query = mysql_query($myquery);
if ( ! $query ) {
    echo mysql_error();
}

    $data = mysql_fetch_array($query);
    echo ($data);

mysql_close($server);
?>

在我得到的响应中,我有未定义的数组单元格。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

只返回php中的用户名:

$data = mysql_fetch_assoc($query)['username'];

在你的javascript中你应该能够做警报(数据),而不是在数组中搜索用户名元组。

理想情况下,您应该以json而不是文本的形式返回数据,因为它可以保持结构化并且更容易在javascript中访问。您需要将ajax选项更改为dataType:'json' 和PHP代码:

$data = json_encode(mysql_fetch_assoc($query));

答案 1 :(得分:0)

你在$ data变量中得到数组,所以你应该使用json_encode函数来获得结果行中的所有值 -

 $myquery = "SELECT * FROM  `Output` WHERE `username` ='".$username."'";

foreach ($myquery as $test) 
  {
     $field1_value =$test->name_of_field1_in_db;
     $field2_value =$test->name_of_field2_in_db;
     $field3_value =$test->name_of_field3_in_db;                
  }

$all_values_in_array=array('field1'=>$field1_value,'field2'=>$field2_value,'field3'=>$field3_value,);

echo json_encode(echo json_encode($arr_provider);

并获得像这样的ajax suucess函数的所有值 -

success: function(response){
         var pro = jQuery.parseJSON(response);
         var field1_val=pro.field1;  //var field1 contain value of field1 in db
         var field2_val=pro.field2;
         var field3_val=pro.field3;
                        },
希望它会对你有所帮助。 最好的运气