我試圖從php jquery傳遞一個json,進入一個sql查詢數組並獲取以下javascript錯誤。JSON.parse:意想不到的字符
JSON.parse: unexpected character
函數返回SQL的結果:
public function selectassocSql($sql){
$i = 0;
$resSelect = array();
mysql_query("SET NAMES 'utf8'");
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result))
{
$resSelect[$i] = $row;
$i++;
}
mysql_free_result($result);
return $resSelect;
}
使用此功能後以這種方式,
$sql = "SELECT id, code, name FROM table WHERE code LIKE '%$codcli%' ";
$v = $data->selectassocSql($sql);
echo json_encode($v, JSON_FORCE_OBJECT);
和JavaScript代碼是這樣的:
$('#formclientes').submit(function(e){
e.preventDefault();
$.ajax({
type: 'POST',
url:$(this).attr('action'),
data:$(this).serialize(),
success:function(data)
{
//console.log("SUCCESS " + data);
var json_cli = $.parseJSON(data);
}
})
})
我如何糾正這個錯誤以及我的方式可以從jquery讀取json?
您有一個SQL注入漏洞。 – SLaks 2012-03-13 17:21:51
要糾正錯誤,您必須擁有有效的JSON。顯然你的PHP腳本不會創建有效的JSON。 'json_encode($ v,JSON_FORCE_OBJECT)'輸出的例子會很有幫助。 – 2012-03-13 17:21:51
在嘗試解析它之前先在你的JS中轉儲'data',確保除了json之外沒有別的東西(例如沒有php警告/錯誤消息)。 – 2012-03-13 17:25:10