2011-03-08 122 views
2

我在这段代码中遇到了问题。 json不会允许双引号结果。恩。如果我有结果(一个悲伤的“故事”)json不会解析它。Ajax 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>'); 
    }); 
}}); 

以下是我在我的PHP脚本生成JSON

$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}"; 
+0

为什么这会降低投票率? – Ben 2011-03-08 02:28:12

+0

@Ben:这就是我试图弄清楚,我的问题似乎不相关? – andsien 2011-03-08 02:29:33

+0

这不是100%清楚,但它是一个值得回答的问题。无论如何,有人反对你。 – Ben 2011-03-08 02:35:23

回答

4

的问题是服务器呈现为“你的JSON文件中,并由于json_encode使用这是不行的工作‘’包,这样你就可以做到以下几点:。

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

它将取代撇号和引号与他们的十六进制代码

+0

谢谢jeremy它完美的作品.. – andsien 2011-03-08 03:09:13

+0

不错。很高兴知道..从来没有碰到过这个问题 – Ben 2011-03-08 03:33:46

+0

谢谢你太ben了您的答复.. – andsien 2011-03-08 03:37:23