[英]passing a php array to javascript
我有一个呼应html的php。 在这些回声之一中,我有一个调用javascript函数的按钮。 在此调用中,我传递了一个php变量。 但是,当我看到其中一个元素的值在javascript内部时,我就无法定义。
有任何想法吗?
Java脚本
function addrow(innerid, teams){
alert(teams[1]);}
这是我通过它的方式,这一切都在回声之内
<input type = "button" id = '.$buttonid.' value = "Agregar" onclick = "addrow(\'' . $leaguesarray[$numofleagues] . '\','.$teamsarray.')
所以我叫addrow(具有联盟值,我也从php传递了数组teamsarray
我已决定尝试其他方法,但无法正常工作。
有什么建议么?
echo '<script language="javascript">';
for ($size = 0; $size < sizeof($teamsarray);$size++){
echo "var teamsarray[".$size."] = ".$teamsarray[$size].";\n";
}
echo 'function addrow(innerid, size){
for (var i = 0;i< size; i++ ){
html = html + "<option value = " + teamsarray[i] + ">"+teamsarray[i]+"</option>";
}
html = html +"</select>";
}</script>';
基本上我想做的是通过php来回显javascript。 我正在尝试使用从php获取的值进行下拉。 将使用addrow函数动态添加。
听起来您可能正在寻找json_encode,所以您可以执行以下操作:
if (empty($teamsarray)) $teamsarray = array();
echo '<input type = "button" id = '.$buttonid.' value = "Agregar" onclick = "addrow(\'' . $leaguesarray[$numofleagues] . '\','.json_encode($teamsarray).'); return false;" />';
在javascript中,数组看起来像:[2,4,6]。 php implode命令可以在这里提供帮助。
$buttonid = 42;
$leaguesarray[$numofleagues] = 66;
$teamsarray = array(2,4,6);
$teams = implode(',',$teamsarray);
$input = <<<EOT
<input type="button" id="$buttonid" value="Agregar" onclick="addrow($leaguesarray[$numofleagues],[$teams])" />
EOT;
echo $input . "\n";
产量:
<input type="button" id="42" value="Agregar" onclick="addrow(66,[2,4,6])" />
我想这就是你想要的。
编辑:
@Dustin Grahams建议使用json_encode是一个很好的建议。 将爆破替换为:
$teams = json_encode($teamsarray);
然后从模板中删除多余的括号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.