在尝试进入sql查询数组并获得以下javascript错误后,我尝试通过php jquery传递json。
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?
您不需要$.parseJSON调用,因为jQuery自动执行该调用,因为如果未指定dataType属性,则jQuery会尝试猜测它并调用正确的函数来解析响应,然后再将数据处理为成功函数。
$.parseJSON
dataType
$.ajax({ type: 'POST', url:$(this).attr('action'), data:$(this).serialize(), success:function(data) { //console.log("SUCCESS " + data); var json_cli = data; } })