[英]Returns Mysql SQL results in JSON format
我正在嘗試將Typeahead.js實施到我的網站。
typeahead.js將取自返回JSON的遠程頁面,
類似於: http://example.org/search?q=%QUERY
: http://example.org/search?q=%QUERY
對於我的網站,這是我為PHP編寫的內容:
$q=mysql_real_escape_string($_GET['q']);
$getship= @mysql_query('SELECT * FROM `tbl` WHERE data1 LIKE \'%'.$q.'%\' OR schar LIKE \'%'.$q.'%\';');
while($tbl=mysql_fetch_array($getship)){
$id=$tbl['id'];
$data1=$tbl['data1'];
$fplod=explode(" ",$data1);
$data2=$tbl['data2'];
$splod=explode(" ",$data2);
$data3=$tbl['data3'];
$data4=$tbl['data4'];
echo '{
"value":'.$id.',
"tokens":["'.$fplod[0].'","'.$fplod[1].'","'.$splod[0].'","'.$splod[1].'"],
"data1" :"'.$data1.'",
"data2":"'.$data2.'",
"data3":"'.$data3.'",
"data4":"'.$data4.'"
}';
}
但是,無論何時我要求提前輸入要返回的內容,它似乎都以text / html而不是application / json返回 。
我該如何運作?
提前致謝
您可以自己設置Content-Type
標頭。 在發送任何輸出之前,請調用header
:
header('Content-Type: application/json');
那是無效的JSON。 您在名稱兩邊沒有引號。 PHP已經內置了json編碼/解碼功能,因此您不必自己構建字符串。
echo json_encode(array("value" => $id /* etc
手動將數據轉換為json並不是一個好習慣,而是使用json_encode
$data = array();
while($tbl=mysql_fetch_array($getship)){
$data[] = $tbl;
}
$return = array("data"=>$data);
echo json_encode($return);
嘗試類似:
while($row = mysql_fetch_array($getship, MYSQL_ASSOC))
{
$row_set[] = $row;
}
echo json_encode($row_set);
您也可以使用mysql_fetch_assoc。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.