例如我有一个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] ?>');
}
有什么建议吗?谢谢!
答案 0 :(得分:9)
在你的ehco
/ print
或你的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>
答案 1 :(得分:5)
Javascript和PHP无法合并。它们是两个完全不同的程序,只能模糊地交流。 PHP在服务器计算机上运行并生成HTML。 javascript在webbrowser中的客户端计算机上运行,并作用于该HTML。如果您需要以某种方式将信息从PHP移动到Javscript中,那么您必须将其存储在HTML中并让Javascript通过该HTML访问它。如果你需要反过来,将信息从Javascript移动到PHP,让Javascript调用带有查询字符串的PHP页面。
将信息放置在Javascript可以到达的数组中的一种方法是将其回显到隐藏的div中。在一系列ided跨度或只是逗号分隔列表中。然后你可以把它从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);
}
免责声明:未经测试的代码,我现在没时间完善它。如果其他人想要评论或编辑以修复任何错误,请随意:)
答案 2 :(得分:3)
是....将您的PHP数组作为JavaScript数组首先回显,然后循环。不要尝试循环PHP数组;你做不到。
答案 3 :(得分:3)
<?php
$s= array('a','b','c','d','e','f') ;
?>
<?php foreach($s as $a){ ?>
document.write('<?=$a?>');
<?php } ?>
未经测试但只有一种方式。
答案 4 :(得分:0)
<?php $religion = array('1'=>'hindu','2'=>'sikh','3'=>'muslim'); ?>
<script>
<select name="religion_name">
<?php foreach ($religion as $key => $value)
{ echo" <option value=$key> $value->name </option>"; } ?>
</select>
</script>
答案 5 :(得分:0)
实际上,如果您将优先级从JavaScript作为基础,改为PHP作为循环基础,那么您可以做到。
<?php
$s= array('a','b','c','d','e','f') ;
for ( $i=0 ; $i < sizeof($s); i++)
{
?>
<script type="text/javascript">
document.write('<?php echo $s[$i]?>');
</script>
<?php
}