Например, у меня есть массив PHP, такой как этот
<?php $s= array('a','b','c','d','e','f') ; ?>
И я должен циклично выполниться через него в JavaScript, какие-либо идеи, как я делаю это?
for ( i=0 ; i < <?php echo sizeof($s) ?> ; i++) {
document.write('<?php echo $s [somehow need to get the 'i' value into here] ?>');
}
Какие-либо предложения?Спасибо!
<?php
$s= array('a','b','c','d','e','f') ;
?>
<?php foreach($s as $a){ ?>
document.write('<?=$a?>');
<?php } ?>
Не тестировалось, но это единственный вариант.
Javascript и PHP нельзя сочетать. Это две совершенно разные программы, которые общаются лишь смутно. PHP работает на сервере и генерирует HTML. JavaScript запускается на клиентском компьютере в веб-браузере и работает с этим HTML. Если вам нужно каким-то образом переместить информацию из PHP в Javscript, вы должны сохранить ее в HTML и предоставить Javascript доступ к ней через этот HTML. Если вам нужно сделать обратное, переместите информацию из Javascript в PHP, пусть Javascript вызывает страницу PHP со строкой запроса.
Один из способов разместить информацию в вашем массиве где-нибудь, где Javascript может ее найти, - это отобразить ее в скрытом div. Либо в виде серии идущих интервалов, либо просто в виде списка, разделенного запятыми. Затем вы можете вытащить его из DOM.
Например:
<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>
Затем в Javascript вы можете получить доступ к массиву в DOM:
var myArray = new Array();
for(i = 0; i < document.getElementById('myArray.count').innerHTML; i++) {
document.write(document.getElementById('myArray.'+i).innerHTML);
}
Заявление об ограничении ответственности: непроверенный код, и сейчас у меня нет времени на его совершенствование. Если кто-то еще хочет прокомментировать или отредактировать, чтобы исправить какие-либо ошибки, не стесняйтесь:)
Да .... выведите свой массив PHP в виде массива JavaScript сначала ], а затем перебрать это. Не пытайтесь зацикливаться на массиве PHP; ты не можешь.
Перед тем, как ehco
/ напечатайте
или еще ваш массив php, мы убедитесь, что он имеет синтаксис JavaScript.
<?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>