veri döndüğümde karıştırmasını json html etiketleri vardır

1 Cevap php

Ben böyle bir json nesnesi döndüren bir php sayfası var:

 header('Content-Type:application/json');
  echo <<<HERE_DOC
[ {content: '{row2[contentFull]}', bigimages: '{$row3['catalogFileID']}'}]
HERE_DOC;
}

Benim ana sayfada ben aşağıdaki jQuery kodu var:

jQuery(function(){
  jQuery("select#rooms").change(function(){
    var options = '';
    jQuery.getJSON("/admin/selection_about.php",{id: jQuery(this).val(), 
    ajax: isAjax}, function(j){
      for (var i = 0; i < j.length; i++) {
        options = j[i].topImage;
         document.getElementById('content1').value = j[i].bigimages;
      }
    })
  })
})

Yani temelde benim ana sayfa aşağı bir düşüş var. Damla seçenekleri aşağı geri sunucuya ajax isteği patlar değiştirildiğinde, ben json formatında veri almak. ve sonra id 'content1' ile bir textarea güncellenen bu json nesne dayanmaktadır.

json nesnesi, bu gibi görünüyor:

[ {content: '<SPAN STYLE= "" >&quot;this is some text&quot; blah blah, &quot;some more

. text&quot; now some linebreaks. <BR><BR>some more text and then another linebreak <BR> ', bigimages' cfil1069 '}]'

ancak bazı hata olur yol ve benim textarea güncellenen almaz. Ben json nesne iade edilmesi için sadece basit bir metin kodlamalısınız Ancak, o zaman benim textarea güncellenir.

Json nesne veri html etiketleri gerektiğini bir durum var mı?

Edit:

önerdiği gibi, ben php kodu aşağıdaki kodumu değiştirdi.

$arr = array ('content'=>$rest1,'bigimages'=>$row3['catalogFileID']);
echo json_encode($arr);

ancak şimdi benim jquery kodu:

j uzunluğu 'tanımsız' olduğunu ...

    jQuery.getJSON("/admin/selection_about.php",{id: jQuery(this).val(), ajax: isAjax}, function(j){
alert('here3: ' + j.length); // this shows undefined
      for (var i = 0; i < j.length; i++) {
 document.getElementById('content1').value = j[i].content;
      }
    })

1 Cevap

Put your content into a PHP array. Then convert it to JSON using json_encode().
That will safely encode and escape the characters, for example double quotes in your HTML attribute.

UPDATE:

The reason why j.length does not work is because:
An PHP array with keys are not Javascript arrays. Javascript arrays have no keys. Thus when converted, the PHP array is converted into a JS object.

Bunun yerine JS nesneye erişmek için, bunun yerine j.length ile nesnenin döngü içinde, j.content kullanabilirsiniz. Nesne özellik yok çünkü j.length tanımsız j özellik adı length (yani ile PHP dizi, hayır {[olduğundan ( 5)]})