2011-04-16 67 views
0
<?php 
$abc=array(); 
$abc = (abc, cde,fre); 
?> 
<script language="javascript" type="text/javascript"> 
for (var i = 0; i < 3; i++) { 
var gdf = "<?php echo $lat['i'];?>"; 
alert("value ="+gdf); 
} 
</script> 
+10

如果你接受你的一些其他的答案,我们可能更愿意提供帮助。 – Shaz 2011-04-16 15:04:43

+0

请编辑您的问题以澄清问题所在。 – ninjagecko 2011-04-16 15:05:47

+0

你的代码字面上没有任何意义。 $ lat从哪里来?第二个$ abc行不是用array数组初始化数组的正确方法。 – 2011-04-16 15:07:51

回答

0

按照你的意见,我觉得这就是你正在尝试做的:

<?php 

$abc = array('abc', 'cde', 'fre'); 

?> 
<script type="text/javascript"> 
var gdf = '<?php 

for ($i = 0; $i < count($abc); $i++) { 
    echo "{$abc[$i]}"; 
    if ($i != (count($abc)-1)) echo ", "; 
} 

?>'; 
</script> 

将输出:

http://codepad.org/KjEH5CmN

<script type="text/javascript"> 
var gdf = 'abc, cde, fre'; 
</script> 

注意

使用implode如果你想有一个单一的变量也将工作做好:

http://codepad.org/UwukCY4m

<?php 

$abc = array('abc', 'cde', 'fre'); 

?> 
<script type="text/javascript"> 
var gdf = '<?php echo implode(', ',$abc); ?>'; 
</script> 
0

您并不想分配数组的单个值;你正在寻找整个阵列。你的JavaScript循环试图迭代来自PHP的整个$abc数组。

像这样的东西会工作:

var abc = <?php echo json_encode($abc); ?>; 
for(var i = 0; i < 3; i++) 
    var gdf = abc[i]; 
    alert("value = " + gdf); 
} 
+0

'<?='已弃用,请勿使用它。 – halfdan 2011-04-16 15:07:12

+0

@halfdan - 你有一个正式的PHP声明?最后一次我听说,仍然没有确定6会正式否决它们,但那是一段时间了。 – 2011-04-16 15:12:04

+0

感谢您的帮助。我通过这种方法得到了解决方案 – QAZI 2011-04-16 15:16:22

0

首先,打造你应该使用这个标志的PHP数组:

<?php 

$abc = array('abc', 'cde', 'fre'); 

?> 

下,这是不可能的使用JavaScript来直接通过循环您存储在PHP中的变量。你可以做这样的事情,而不是在PHP执行循环:

<?php 
$abc=array('abc', 'cde', 'fre'); 
?> 
<script language="javascript" type="text/javascript"> 
    <?php foreach ($abc as $el): ?> 
    alert('value=<?php echo $el ?>'); 
    <?php endforeach ?> 
</script> 

或者,如果你真的很喜欢这个循环在JavaScript中发生,而不是PHP,你可以“出口”的PHP数组的JavaScript通过将数组转换为JSON字符串并输出。

<?php 
$abc=array('abc', 'cde', 'fre'); 
?> 
<script language="javascript" type="text/javascript"> 
    var abc = <?php echo json_encode($abc) ?>; 

    for (var i = 0; i < abc.length; i++) { 
     alert('value=' + abc[i]); 
    } 
</script> 
+0

我相当肯定他只是在那里测试他的代码。他真正想要的是在他的JavaScript中使用这些值。 – halfdan 2011-04-16 15:10:17

+0

是的,'alert'只是为了演示这项技术。它可以替换为他喜欢的任何代码。 – 2011-04-16 15:12:35

+0

'json_encode'比手动构建数组(或多或少)更好。 – 2011-04-16 15:14:59

相关问题