簡體   English   中英

從PHP獲取數組值到javascript

[英]Getting array value from PHP to javascript

我如何從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。

這是您的解決方案:

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

使用Alert時-由於它是json而不是測試內容,因此可以看到結果。 最適合您的是使用Chrome開發人員工具(或FF上的Firebug)並在控制台中查看結果。

您可以像在此問題的答案中一樣使用json_encode: 如何將此PHP數組轉換為JavaScript數組?

如果您不知道/不想使用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,則還需要在它們周圍打印quotes(“)。您可以使用瀏覽器查看源代碼來檢查生成的javascript語法(如果它不能正常工作) 。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM