从PHP到javascript获取数组值

从PHP到javascript获取数组值,php,javascript,arrays,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)

如何从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){
//来源。。
}
$(文档).ready(函数(){
var行=;
var i;
对于(i=1;数组idset的值;
getdata(valarray);//将数据数组用于其他函数。。
});
}
});   

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

var-valarray=
var-valarray=
您可以在回答这个问题时使用json\u编码:

如果您不知道/不想使用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语法不起作用,您可以使用浏览器视图源检查生成的javascript语法。

您可以使用json_encode,如回答此问题时所示:

如果您不知道/不想使用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语法不起作用,您可以使用浏览器视图源来检查它。

以下是您的解决方案:

var valarray = <?php echo json_encode($idset); ?>; 
console.log('we got: '+ valarray)
var-valarray=;
log('我们得到:'+valarray)
使用alert时,您可以看到结果,因为它是json而不是测试。您最好使用Chrome开发工具(或FF上的Firebug),并在控制台中查看结果。

以下是您的解决方案:

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

使用alert时,您可以看到结果,因为它是json而不是测试。您最好使用Chrome开发工具(或FF上的Firebug)并在控制台中查看结果。

我曾尝试过,但使用时:alert(valarray[i]);为了检查结果,返回“未定义”值。。也许我使用了我不知道的错误代码。如果你知道Javascript语法,只需使用浏览器的视图源代码来确保它看起来是正确的。我回显换行符(\n)以将新行打印到源代码(而不是屏幕)以使代码看起来干净。我写的代码可能有错误,如果您需要帮助,请随时发布您的代码;为了检查结果,返回“未定义”值。。也许我使用了我不知道的错误代码。如果你知道Javascript语法,只需使用浏览器的视图源代码来确保它看起来是正确的。我回显换行符(\n)以将新行打印到源代码(而不是屏幕)以使代码看起来干净。我写的代码中可能有错误,如果需要帮助,请随时发布代码;警报(valarray[i]);//检查值,但返回“未定义”值。我是否使用了错误的代码;警报(valarray[i]);//检查值,但返回“未定义”值。我用错代码了吗?