Intereting Posts
Как получить стабильный вид в PHP с помощью arsort ()? Согласование множественного появления одного и того же символа с preg_match Когда лучше всего использовать оператор switch в PHP? Laravel: я не могу отправить более двух переменных из контроллера в режим просмотра Некоторые значения с плавающей запятой должны суммироваться до нуля в PHP, но не Jquery load () html-файл, содержащий JavaScript который является лучшим array_search или in_array? Многомерный массив массивов PHP Не работает массив array_reverse? Соединение fsockopen ssl не работает Арабская передача данных между несколькими таблицами в разных базах MySQL, возвращающихся ???????? как новые значения Как воспроизводить все видеофайлы в браузере с помощью php? Мне нужно регулярное выражение php, которое заменяет один тег другим php – в чем преимущество отбрасывания переменных? PHP.net говорит, что md5 () и sha1 () непригодны для пароля? PHP / Javascript: запоминание состояния полей формы и формы с помощью файлов cookie

JSON.parse: неожиданный персонаж

Я пытаюсь передать json из php jquery, после того как вы попали в массив sql-запроса и получили следующую ошибку javascript.

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); } }) }) 

Как я могу исправить эту ошибку и как я могу прочитать json из jquery?

Вам не нужен вызов $.parseJSON поскольку jQuery автоматически делает это, потому что, если вы не укажете свойство dataType jQuery пытается угадать его и вызывает правильную функцию для анализа ответа до того, как данные будут обработаны функцией успеха

  $.ajax({ type: 'POST', url:$(this).attr('action'), data:$(this).serialize(), success:function(data) { //console.log("SUCCESS " + data); var json_cli = data; } }) 

проверьте также этот вопрос Почему «jQuery.parseJSON» не нужен?

Я просто столкнулся с этим в FF10.0.2 с данными, которые выглядели так:

 [ { "firstName": 'Joe', "lastName": 'Smith' } ] 

(с несколькими объектами в массиве – сокращенными для ясности)

Он фактически анализировал ОК, используя eval, но вместо JSON.parse. (Я не использую jQuery здесь.)

Проблема исчезла, когда я изменил значение «на» для значений:

 [ { "firstName": "Joe", "lastName": "Smith" } ] 

Я думал, что «требование предназначено только для имен свойств, а не для значений данных.