Аякс Джсон не допустит двойных результатов - PullRequest
2 голосов
/ 08 марта 2011

У меня проблема с этим кодом. JSON не позволяет использовать двойные кавычки. ех. если у меня есть результат (печальная «история»), то json не будет его анализировать.

$('.loader1').show();
$.ajax({
  url: "findBook.php?action=populatemyacademy&bookCatId="+parentCategoryId+"",
  cache: false,
  dataType: "json",
  success: function(data) {
    $('.loader1').hide();
    $.each(data.items, function(i,item){
        $("#myAcademy").append('<div class="nameWrapper"><input name="checkMeM" type="checkbox" value="'+item.bookId+'"/><span title="'+item.bookName+'" class="checkBoxSpan">'+item.bookName+'</span></div>');
    });
}});

Вот как я генерирую JSON на своем PHP-скрипте

 $sql = "SELECT academyBookId, title FROM academy_book WHERE academyBookCategoryId = $bookCatId AND academyId = $academyId";
    $qPopulateAcademy = mysql_query($sql, $dbConMain) or die(__LINE__.' '.$sql.' '.mysql_error());
    while($rPopulateAcademy = mysql_fetch_array($qPopulateAcademy)){
        $rows[] = array('bookId' => $rPopulateAcademy [0], 'bookName' => $rPopulateAcademy [1]);
    }
    $jsdecode = json_encode($rows);
    echo "{items:$jsdecode}";

1 Ответ

4 голосов
/ 08 марта 2011

Проблема в том, что сервер отображает его как «в вашем документе JSON, и это не сработает, потому что json_encode использует« »для переноса, поэтому вы можете сделать следующее:

$jsdecode = json_encode($rows,JSON_HEX_APOS|JSON_HEX_QUOT)

, который заменитапострофы и кавычки с их шестнадцатеричными кодами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...