JavaScript bir PHP dizi döngü gerekir

4 Cevap php

Örneğin ben bu gibi bir PHP dizi var

<?php $s= array('a','b','c','d','e','f') ; ?>

Ve ben JavaScript bunun döngü, bunu nasıl yapabilirim herhangi bir fikir gerekir?

for ( i=0 ; i < <?php echo sizeof($s) ?> ; i++) {
document.write('<?php echo $s [somehow need to get the 'i' value into here] ?>');
}

Herhangi bir öneriniz? Teşekkürler!

4 Cevap

<?php
$s= array('a','b','c','d','e','f') ;
?>

<?php foreach($s as $a){ ?>

document.write('<?=$a?>');

<?php } ?>

Test edilmiş ama bir şekilde thats değil.

Lütfen ehco / print veya başka php dizideki önce biz JavaScript sözdizimi emin olun.

<?php
$s=array('a','b','c','d','e','f');
$s_to_json=json_encode((array)$s);
?>

<script type="text/javascript">

var fromPHP=<? echo $s_to_json ?>;

for (i=0; i<fromPHP.length; i++) {

yourValue=fromPHP[i];

}

</script>

Evet .... Bir JavaScript dizi first, ve o üzerinde döngü olarak PHP dizi echo. PHP dizi üzerinde döngü kalkmayın; yapamazsın.

Javascript ve PHP kombine edilemez. Onlar sadece belli belirsiz iletişim iki tamamen farklı programlardır. PHP sunucu bilgisayarda çalışır ve HTML oluşturur. Javascript webbrowser istemci bilgisayarda çalışan ve HTML davranır. Eğer bir şekilde Javscript içine PHP bilgi taşımak gerekiyorsa, o zaman HTML saklamak zorunda ve bu HTML ile Javascript erişimi buna sahip. Eğer, ters yapmak JavaScript PHP bilgi taşımanız gerekiyorsa, Javascript bir sorgu dizesi ile bir PHP sayfası çağırın.

Javascript onu almak nerede, yere dizideki bilgileri yerleştirmek için tek yolu, gizli bir div içine yankı olacaktır. Ya ided açıklıklı ya da sadece bir virgülle ayrılmış liste bir dizi. Sonra DOM dışarı indirebiliriz.

Örneğin:

<div style="display: none;" id="myArray">
<?php 
echo '<span id="myArray.count">'.sizeof($s).'</span>';
for ($i = 0; $i < sizeof($s); $i++) {
    echo '<span id="myArray.'.$i.'">'.$s[$i].'</span>';
}
?>
</div>

Sonra Javascript size DOM dizi erişebilirsiniz:

var myArray = new Array();

for(i = 0; i < document.getElementById('myArray.count').innerHTML; i++) {
  document.write(document.getElementById('myArray.'+i).innerHTML);
}

Yasal Uyarı: denenmemiş kodu, ve ben şu anda bunu mükemmel vaktim yok. Başkasının herhangi bir hata çekinmeyin düzeltmek veya yorum düzenlemek istiyorsa :)