php 中用echo输出JS省份跟城市联动的下拉列表 ,最后输出时中间变成 "..."

代码如下:
<td width="45%"><?php
$sql="parentid in(".$str.") ";
$array=explode(',',$str);
$strscript=" <script type='text/javascript'> var optionArray2 = new Array(); ";
echo $strscript;
foreach($array as $row1)
{
if($row1==2 or $row1==3 or $row1==4 or $row1==5)
{
echo "optionArray2["; echo $row1; echo "] = new Array();";
$sql="linkageid = ".$row1;
$category2=get_infos("linkage",$sql,"linkageid,parentid,name",100);
$count=0;
foreach($category2 as $row2)
{
echo "optionArray2[";
echo $row1;
echo "][";
echo $count;
echo "] = new Option('";
echo str_cut($row2['name'],12,'');
echo "', '";
echo $row2['linkageid'];
echo "');";
$count++;
}
}
else
{
echo "optionArray2["; echo $row1; echo "] = new Array();";
//$strscript="optionArray2[".$row1."] = new Array();";
//echo $strscript;
$sql="parentid = ".$row1;
$category2=get_infos("linkage",$sql,"linkageid,parentid,name",100);
$count=0;
foreach($category2 as $row2)
{
//$strscript="optionArray2[".$row1."][".$count."] = new Option(".$row2['name'].", ".$row2['linkageid'].");";
echo "optionArray2[";
echo $row1;
echo "][";
echo $count;
echo "] = new Option('";
echo str_cut($row2['name'],12,'');
echo "', '";
echo $row2['linkageid'];
echo "');";
$count++;
}
}
}
$strscript="function redirec2(x){ document.frm_company.zhaopin_cityid.options.length=0; var temp = document.frm_company.zhaopin_cityid; for (i=0;i<optionArray2[x].length;i++){ temp.options[i]=new Option(optionArray2[x][i].text,optionArray2[x][i].value); } temp.options[0].selected=true;}</script> ";
echo $strscript;
?>
<select name="zhaopin_cityid" id="zhaopin_cityid" style="width:150px;" >
<option value="">按城市分类</option>

</select>
</td>
输出的结果如下图:

首先确保下 你自己地区的数据信息对不对追问

数据库信息都是对的

追答

你输出的哪一行值不是字符串,而是一个数组

追问

都不是数组的,数据库里面这个表的数据就没有存储数组的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-05
数据库里数据对不对?追问

数据库数据是对的
而且如果我把截取字符串的函数给去除掉结果是不一样的
echo str_cut($row2['name'],12,'');去除截取字符串长度echo $row2['name'];

那么他输出的结果变成

追答

那你的str_cut有问题?

相似回答