如何传递php数组变量到JavaScript 简单的方法:window.location='ddd.php?aaa='+aaa.value+'&bbb='+bbb.value; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ?不太明白 能把前后都写上吗?aaa是php还是js变量?是二维数组,如果是普通变量我也会传递 你的意思是不是把数组拆开一项一项赋值?php数组的值是从数据库得到的,所以这种方法不行 a="<?php echo "aaa";?>"; 这样写<?php$ar = array( array(1,2,3,4), array("a","b","c","d"));$s = "";foreach($ar as $value) { if(is_array($value)) $s .= (!empty($s)?",":"").'new Array("'.join('","',$value).'")'; else $s .= '"'.$value."'";}?><script>var ar = new Array(<?php echo $s; ?>);alert(ar);</script> <SCRIPT>var show = new Array();var value = new Array();show='<? echo $phpshow ?>'value='<? echo $phpvalue ?>'</SCRIPT> xuzuning(唠叨) 你的方法是正确的,但有一个问题如何能够写成:$a=array(aa,bb,cc);$b=array(dd,ee,ff,gg);$ar = array( array($a), array($b));或者$a="aa,bb,cc";$b="dd,ee,ff,gg";$ar = array( array($a), array($b), ... ...);因为是从数据库获得a,b的值,如下:<?$name = "select * from game";$name= mysql_query($name);for($i=1;$tmp_search = mysql_fetch_array($game);$i++){ $i2=i-1; $server_name[$i2]=array($tmp_search[server_name]);}?>$tmp_search[server_name]是一个字符串"aa,bb,cc,dd"我的写法不对,怎样才能得到二维数组$server_name?抱歉问题很罗嗦,又没分了 xuzuning(唠叨) 的方法是正确的,但是有点复杂: while(db_fetch_row($result)) { $a [$i]=db_result($result,id); $b [$i]=db_result($result,descript); $i++; } $ar=join(",",$a); $br=join(",",$b);<script>function arrayab(ar,br)var a=ar.split(",");var b=ar.split(",");</script>其实就是将数组用字符的方式传到脚本,我也想不通过这种方式,没找到.</script> 同意唠叨的:<?php$ar = array( array(1,2,3,4), array("a","b","c","d"));$s = "";foreach($ar as $value) { if(is_array($value)) $s .= (!empty($s)?",":"").'new Array("'.join('","',$value).'")'; else $s .= '"'.$value."'";}?><script>var ar = new Array(<?php echo $s; ?>);alert(ar);</script> 太郁闷了,例子正确,我从数据库调用就是不行$game_tmp = mysql_query("SELECT * FROM game_list");$i=0;while($game_name = mysql_fetch_array($game_tmp)){ $server_name=explode(",",$game_name[game_server_name]); $num=count($server_name); for($ii=0;$ii<$num;$ii++){ if($ii!=0){ $ass[$i]=$ass[$i].',"'.$server_name[$ii].'"'; }else{ $ass[$i]='"'.$server_name[$ii].'"'; } } if($i!=0){ $array=$array.',new Array('.$ass[$i].')'; }else{ $array='new Array('.$ass[$i].')';} $i++;}echo $array;?><SCRIPT>var po_detail_show= new Array(<?php echo $array?>);</SCRIPT>echo $array 看到的结果和echo $s 的结果完全一样,为什么就是不行,我把echo的结果替换js里面的<?php echo $array?>就没问题,为什么???? 这样也不行:$i=0;while($game_name = mysql_fetch_array($game_tmp)){ $server_name=explode(",",$game_name[game_server_name]); $num=count($server_name); for($ii=0;$ii<$num;$ii++){ $ass=$server_name[$ii]; $ar[$i][$ii]="$ass"; } $i++;}$s = "";foreach($ar as $value){ if(is_array($value)) $s .= (!empty($s)?",":"").'new Array("'.join('","',$value).'")'; else $s .= '"'.$value."'";}?><SCRIPT>var po_detail_show= new Array((<?php echo $s;?>);var po_detail_value= new Array(<?php echo $s;?>);</SCRIPT> 最简单的思路,如果让你直接在静态页面写js的数组定义你会么?我对服务器短脚本语言的理解就是输出文本给浏览器,仅此而已。所以你要js里面怎么实现,你就要让浏览器接收到的php输出内容符合你想要的效果的规范。 你看了生成的html源文件了么?我遇到过从数据库里取出来的字段莫名其妙多了回车的情况,这个在网页上看不出,但是在js里会出错。后来我加上trim()就好了 设置php.ini的extension后,apache启动报错 一个符号:: 谁知道比较好的开源的php投票系统? php 修改上传的图片 php转义字符 php连接远程ORACLE 循环的问题..帮帮!!! 把谁做为判断条件显示的时候谁就出错 想做一个公司管理软件,不知道哪位好心人能提供一个美观点界面 急急急!!!我下载了一个PHP-4.3.1.tar结果解压后没有安装文件…… 请问这是什么原因? 请问如何实现确认窗口?
php数组的值是从数据库得到的,所以这种方法不行
<?php
$ar = array(
array(1,2,3,4),
array("a","b","c","d")
);$s = "";
foreach($ar as $value) {
if(is_array($value))
$s .= (!empty($s)?",":"").'new Array("'.join('","',$value).'")';
else
$s .= '"'.$value."'";
}
?>
<script>
var ar = new Array(<?php echo $s; ?>);
alert(ar);
</script>
var show = new Array();
var value = new Array();
show='<? echo $phpshow ?>'
value='<? echo $phpvalue ?>'
</SCRIPT>
$a=array(aa,bb,cc);
$b=array(dd,ee,ff,gg);
$ar = array(
array($a),
array($b)
);或者
$a="aa,bb,cc";
$b="dd,ee,ff,gg";
$ar = array(
array($a),
array($b),
...
...
);
因为是从数据库获得a,b的值,如下:
<?
$name = "select * from game";
$name= mysql_query($name);
for($i=1;$tmp_search = mysql_fetch_array($game);$i++){
$i2=i-1;
$server_name[$i2]=array($tmp_search[server_name]);
}?>$tmp_search[server_name]是一个字符串"aa,bb,cc,dd"我的写法不对,怎样才能得到二维数组$server_name?
抱歉问题很罗嗦,又没分了
while(db_fetch_row($result))
{
$a [$i]=db_result($result,id);
$b [$i]=db_result($result,descript);
$i++;
}
$ar=join(",",$a);
$br=join(",",$b);
<script>
function arrayab(ar,br)
var a=ar.split(",");
var b=ar.split(",");
</script>
其实就是将数组用字符的方式传到脚本,我也想不通过这种方式,没找到.
</script>
<?php
$ar = array(
array(1,2,3,4),
array("a","b","c","d")
);$s = "";
foreach($ar as $value) {
if(is_array($value))
$s .= (!empty($s)?",":"").'new Array("'.join('","',$value).'")';
else
$s .= '"'.$value."'";
}
?>
<script>
var ar = new Array(<?php echo $s; ?>);
alert(ar);
</script>
$i=0;
while($game_name = mysql_fetch_array($game_tmp)){
$server_name=explode(",",$game_name[game_server_name]);
$num=count($server_name);
for($ii=0;$ii<$num;$ii++){
if($ii!=0){
$ass[$i]=$ass[$i].',"'.$server_name[$ii].'"';
}else{
$ass[$i]='"'.$server_name[$ii].'"';
}
} if($i!=0){
$array=$array.',new Array('.$ass[$i].')';
}else{
$array='new Array('.$ass[$i].')';}
$i++;
}
echo $array;
?>
<SCRIPT>var po_detail_show= new Array(<?php echo $array?>);</SCRIPT>echo $array 看到的结果和echo $s 的结果完全一样,为什么就是不行,我把echo的结果替换js里面的<?php echo $array?>就没问题,为什么????
$i=0;
while($game_name = mysql_fetch_array($game_tmp)){
$server_name=explode(",",$game_name[game_server_name]);
$num=count($server_name);
for($ii=0;$ii<$num;$ii++){
$ass=$server_name[$ii];
$ar[$i][$ii]="$ass";
}
$i++;
}
$s = "";
foreach($ar as $value){
if(is_array($value))
$s .= (!empty($s)?",":"").'new Array("'.join('","',$value).'")';
else
$s .= '"'.$value."'";
}
?>
<SCRIPT>var po_detail_show= new Array((<?php echo $s;?>);var po_detail_value= new Array(<?php echo $s;?>);</SCRIPT>
我对服务器短脚本语言的理解就是输出文本给浏览器,仅此而已。
所以你要js里面怎么实现,你就要让浏览器接收到的php输出内容符合你想要的效果的规范。
我遇到过从数据库里取出来的字段莫名其妙多了回车的情况,这个在网页上看不出,但是在js里会出错。后来我加上trim()就好了