2010-04-18 63 views
5

例如PHP数组我有一个PHP阵列需要循环,像这样的一个通过在JavaScript

<?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] ?>'); 
} 

有什么建议吗?谢谢!

回答

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

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

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

<?php } ?> 

没有测试,但多数民众赞成在一种方式。

+0

感谢的人,它的工作方式! – 2010-04-18 19:32:30

+0

var lat = new Array(); var long = new Array(); <?php foreach($ latlong as $ a){?> lat.push('<?php echo $ a [0]?>'); long.push('<?php echo $ a [1]?>'); 2010-04-18 19:57:44

+0

我*真的*希望你不是*只是*打印出变量......(你有'回声') – mpen 2010-04-19 07:39:06

3

是....将您的PHP数组作为一个JavaScript数组回显出来第一个,然后循环。不要尝试循环你的PHP数组;你不能。

+0

一个...我怎么回应我的PHP数组到一个JS数组? – 2010-04-18 18:48:42

+0

如果可用,'json_encode()'将是一个好的开始。 – ZeissS 2010-04-18 19:02:08

+1

这是如此伤心:D – 2010-04-18 19:06:40

4

JavaScript和PHP不能组合。他们是两个完全不同的程序,只能模糊地沟通。 PHP在服务器计算机上运行并生成HTML。 JavaScript在webbrowser中的客户端计算机上运行,​​并对该HTML执行操作。如果您需要以某种方式将信息从PHP转移到Javscript,那么您必须将其存储在HTML中,并让Javascript通过该HTML访问它。如果您需要做相反的事情,请将信息从Javascript移动到PHP,让Javascript调用带查询字符串的PHP页面。

一种将信息放置在数组中的某个地方的方法就是将其转换为隐藏的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); 
} 

免责声明:未经测试的代码,我没有去完善它的时间马上。如果有人想评论或修改任何错误,请随时免费:)

+0

“隐约传达”,是吧? PHP是一种模板技术,JS是HTML/CSS之类的模板文本。让PHP按原样打印JS,然后让web浏览器执行解释/执行JS的工作。您不一定需要将其打印到隐藏的div中。例如''就足以分配一个PHP变量,就好像它是一个JS变量。 – BalusC 2010-04-18 19:16:01

7

在您的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> 
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> 
+0

请添加一些解释。 – Gammer 2017-06-08 08:12:32