[英]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.