如何从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。
答案 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); ?>