我正在使用echo语句,并且在更改select标记时我使用了javascript
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页面中使用它,那么该函数就不能正常工作,因为它给出了类未定义的错误
function check()
{
return location.href='.?&class=.'+this.value;
}
那么有什么方法可以使用这个函数
这些通常是进入和退出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
虽然很少使用,但这种策略甚至可以在功能和方法的范围内实现:
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
}
重点是:不要用PHP echo
大量的HTML(或任何类似的东西(。它将使您免于不可避免的报价不匹配问题。
试试这个,在PHP中,你必须使用反斜杠转义单引号
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;)" 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>');