从PHP获取数组值到javascript

时间:2011-11-04 02:44:11

标签: php javascript arrays

如何从php获取数组值到javascript,并在javascript中使用其他函数的值? 这是我的源代码:

<?php
    $sSql  = "SELECT * from contactinfo order by description, nama_cp";
    $r1 = $dbconn->execute ($sSql);
    $idset=array();
    $no=1;
    while (($r1) && (!$r1->EOF)) {
        $s1 = $r1->GetRowAssoc(false);
        $idset[$no]=$s1[id];
        $no++;
    }
?>
<script type="text/javascript">
function getdata(valarray){
    //source..
}
 $(document).ready(function() {
     var line=<?php echo($no); ?>;
     var i;
     for(i=1;i<line;i++){
        $("#action"+i).click(function() {//button, that named with action+int
            //var valarray = ??? -------->value of array idset;
            getdata(valarray);//use data array for other function..
        });
     }
 });   
 </script> 

在这段代码中,我想在函数getdata()中使用valarray。

3 个答案:

答案 0 :(得分:4)

以下是您的解决方案:

var valarray = <?php echo json_encode($idset); ?>; 
console.log('we got: '+ valarray)

当你使用警报时 - 你可以看到结果,因为它是一个json而不是测试。最好的方法是使用Chrome开发工具(或FF上的Firebug)并在控制台中查看结果。

答案 1 :(得分:2)

您可以在此问题的答案中使用json_encode:How to convert this PHP array into a JavaScript array?

如果您不知道/不想使用json,那么您只需要考虑php的工作原理。它在被发送到浏览器之前由服务器处理,因此如果你想在php中使用javascript中的任何东西,你必须像这样打印它:

<?php

$myArr = array();
// add stuff to $myArr
echo '<script type="text/javascript">\n';
echo 'var myJSArr = new Array();\n';
$count = 0;
foreach($myArr as $myItem) {
    echo 'myJSArr[' . $count . '] = ' . $myItem . ';\n';
    $count += 1;
}
echo '</script>\n'

?>

请记住,如果您想使用上述方法将字符串值从php发送到javascript,您还需要在它们周围打印引号(“)。您可以使用浏览器视图源检查生成的javascript语法它不起作用。

答案 2 :(得分:1)

var valarray = <?php echo json_encode($idset); ?>