将数据库查询结果格式化为JSON数组并读入表单

时间:2012-03-26 08:42:11

标签: php ajax database arrays json

我目前有这个代码,它读取用户指定的数据库记录中的第一个字段('myid'是接受数字的文本字段)并将其打印在前端表单的一个字段中。

如何制作数据库中所有字段的JSON数组,然后将它们打印到相关的表单字段?感谢

后端代码

 $id = $_POST['id'];

 $query = "SELECT * FROM Customers WHERE ID = '" . mysql_real_escape_string($id) . '"';
 $result= mysql_query($query);

 if (mysql_num_rows($result) > 0) { 
      while($row = mysql_fetch_row($result)) {

         echo $row[1];
               }
         }

else { 
// no 
// print status message 
echo "No rows found!"; 
     }

前端代码


 jQuery(document).ready(function(){ 
 jQuery("input.myid").keyup(function(e){ 
 e.preventDefault(); 
 ajax_search(); 
          }); 
     });

 function ajax_search(){
 var search_val=jQuery("input.myid").val(); 
 jQuery.post("find.php", {id : search_val}, function(data){

 jQuery("input.fname").val(data);  

        }   
)}

2 个答案:

答案 0 :(得分:2)

您可以使用函数json_encode()将数组转换为json格式。并使用函数json_decode()从json转换为数组。

你必须在函数中传递一个参数,即你要编码或解码的数组。

答案 1 :(得分:1)

header("HTTP/1.0 200 OK");
header('Content-type: text/json; charset=utf-8');
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Pragma: no-cache");
if (mysql_num_rows($result) > 0) 
{
    while($row = mysql_fetch_row($result)) {
        echo json_encode( $row );
    }
}
else 
{ 
    // no 
    // print status message 
    echo json_encode( "No rows found!" );
}
die();