在主机上,php 生成 javascript,丢弃以下错误:失踪;语句之前
生成的代码是:
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){}
它由操作生成.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){}";
看看这一行...
obj.innerHTML = "<select name="sub_ad_category_id"><option value="">-</option></select>";
。修改(缺少一些+
符号,并将值的双引号更改为单''
(
obj.innerHTML = "<select name=" + sub_ad_category_id + "><option value=''>-</option></select>";
+
是简单的串联。''
单引号是将引号完全包含在最终 HTML 中的一种方法;否则,您可以使用斜杠'"'"
转义引号。
更新:
鉴于我在上面看到的更改,它看起来像您构建字符串的方式。 构建字符串时不要使用 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>";
看这个 jsFiddle