должен циклично выполниться через массив PHP в JavaScript

Например, у меня есть массив 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] ?>');
}

Какие-либо предложения?Спасибо!

5
задан Roger Travis 18 April 2010 в 18:42
поделиться

4 ответа

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

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

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

<?php } ?>

Не тестировалось, но это единственный вариант.

3
ответ дан 18 December 2019 в 07:53
поделиться

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);
}

Заявление об ограничении ответственности: непроверенный код, и сейчас у меня нет времени на его совершенствование. Если кто-то еще хочет прокомментировать или отредактировать, чтобы исправить какие-либо ошибки, не стесняйтесь:)

5
ответ дан 18 December 2019 в 07:53
поделиться

Да .... выведите свой массив PHP в виде массива JavaScript сначала ], а затем перебрать это. Не пытайтесь зацикливаться на массиве PHP; ты не можешь.

3
ответ дан 18 December 2019 в 07:53
поделиться

Перед тем, как 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>
9
ответ дан 18 December 2019 в 07:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: