在主机上,php生成javascript,该javascript会删除以下错误: missing;before语句
生成的代码是:
try{
obj = document.getElementById('subcat');
}catch(e){}
try{
obj.innerHTML = "<select name=\"sub_ad_category_id\">
<option value=\"\">-</option>
<option value=\"5\">bootle</option>
<option value=\"3\">Puzzle</option>
</select>";
}catch(e){}
它是由action.php使用以下代码生成的:
if($var_type=='array') $text = '<select name="+ads_data[sub_ad_category_id]+">';
else $text = '<select name="sub_ad_category_id">';
$text .= '<option value="">-</option>';
$res = $ads->get_ads_categories($_SESSION['lang'],$parent_id);
while($r = mysql_fetch_array($res)){
$text .= '<option value="'.$r['ad_category_id'].'">'.$r['category_name'].'</option>';
}
$text .= '</select>';
echo "try{obj = document.getElementById('".$id."');}catch(e){}";
echo "try{obj.innerHTML = ".$text.";}catch(e){}";
发布于 2014-12-21 19:41:56
看看这行..。
obj.innerHTML = "<select name="sub_ad_category_id"><option value="">-</option></select>";
..。修改(缺少一些+
符号,并将值处的双引号更改为单''
)
obj.innerHTML = "<select name=" + sub_ad_category_id + "><option value=''>-</option></select>";
The +
is simple
+
''
single quotes是在最终的+
中干净地包含引号的一种方法;否则,您可以使用\"\"
斜杠转义引号。更新
根据我在上面看到的更改,看起来您是如何构建字符串的。在构建字符串时不要使用enter键。试着这样..。
var html = "<select name=\"sub_ad_category_id\">";
html += "<option value=\"\">-</option>";
html += "<option value=\"5\">bootle</option>";
html += "<option value=\"3\">Puzzle</option>";
html += "</select>";
ob.innerHTML = html;
..。或者..。
ob.innerHTML = "<select name=\"sub_ad_category_id\"><option value=\"\">-</option><option value=\"5\">bootle</option><option value=\"3\">Puzzle</option></select>";
查看此
https://stackoverflow.com/questions/27588990
复制相似问题