我们如何将数组的单个值分配给javascript中的任何变量

时间:2011-04-16 15:01:40

标签: php javascript

<?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>

3 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分: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中发生循环,你可以通过将数组转换为JSON字符串并输出它来将PHP数组“导出”到JavaScript中。

<?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>

答案 2 :(得分: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>