双引号,单引号在HTML代码的JavaScript proble在PHP echo语句
问题描述:
我使用echo语句的onchange选择标签的我已经使用的JavaScript双引号,单引号在HTML代码的JavaScript proble在PHP echo语句
echo('<select name="type" onchange="(return location.href='.?&class=.'+this.value;)" id="manage_ads">
<option value="ads">Paid To Click Ads</option>
<option value="banner_ads">Banner Ad</option>
<option value="featured_ads">Featured Text Ads</option>
<option value="featured_link">Featured Link Ads</option>
</select>');
它显示为HREF =”在这里单引号错误与echo语句冲突。
,但如果我用它在另一个JavaScript页面则函数doenot工作properlly,因为它给出错误classundefined
function check()
{
return location.href='.?&class=.'+this.value;
}
那么有没有用,我可以使用此功能
答
试试这个,在PHP中你必须用反斜杠
逃脱单引号0echo('<select name="type" onchange="(return location.href=\'?&class=\'+this.value;)" id="manage_ads">
<option value="ads">Paid To Click Ads</option>
<option value="banner_ads">Banner Ad</option>
<option value="featured_ads">Featured Text Ads</option>
<option value="featured_link">Featured Link Ads</option>
</select>');
答
你忘记任何方式逃脱他们
echo('<select name="type" onchange="(return location.href=\'.?&class=.\'+this.value;)" id="manage_ads">
<option value="ads">Paid To Click Ads</option>
<option value="banner_ads">Banner Ad</option>
<option value="featured_ads">Featured Text Ads</option>
<option value="featured_link">Featured Link Ads</option>
</select>');
答
你能逃脱单引号是这样的:
echo('<select name="type" onchange="(return location.href=\'.?&class=.\'"+this.value;)" ...
答
逃生你想有作为一个字符串文字中的单引号。就像这样:
echo('<select name="type" onchange="(return location.href=\'.?&class=.\'+this.value;)" id="manage_ads">
<option value="ads">Paid To Click Ads</option>
<option value="banner_ads">Banner Ad</option>
<option value="featured_ads">Featured Text Ads</option>
<option value="featured_link">Featured Link Ads</option>
</select>');
答
这些是跳跃进入和退出PHP模式的典型的完美方案:
?>
<select name="type" onchange="(return location.href='.?&class=.'+this.value;)" id="manage_ads">
<option value="ads">Paid To Click Ads</option>
<option value="banner_ads">Banner Ad</option>
<option value="featured_ads">Featured Text Ads</option>
<option value="featured_link">Featured Link Ads</option>
</select>
<?php
虽然inoften使用,这种策略甚至可以在功能和方法的范围实施:
function createSelectControl($name, array $options) {
?>
<select name="<?= $name ?>">
<?php
foreach ($options as $name => $value) {
createSelectOption($name, $value);
}
?>
</select>
<?php
}
function createSelectOption($name, $value) {
?>
<option value="<?= $value ?>"><?= $name ?></option>
<?php
}
问题的关键是:不要echo
丰富的数额HTML(或任何对此事 )与PHP。 它可以帮助您避免以下不可避免的报价不匹配问题。