php echo语句中html标记的javascript中的双引号、单引号问题
Double quotes ,single quotes problem in javascript of html tag in php echo statement
我正在使用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>');
相关文章:
- Javascript/jQuery:用HTML span标记替换单引号中的文本
- 删除单引号字符转义
- 将字符串中的单引号替换为双引号
- JavaScript:单引号'导致错误
- 表单提交问题,如何在我的URL末尾获得ID的值
- ASP MVC复选框表单提交问题
- 如何通过HTML将带有单引号的JSON从PHP传递到Javascript
- 如何在java脚本中用单引号写逗号分隔的值
- 使用jquery或regex,带点但不带点的拆分字符串位于单引号中
- 用空格替换单引号和其他符号
- javascript单引号/双引号
- JS表单验证问题
- 单引号导致jquery mobile出现问题
- JavaScript 将单引号替换为双单引号问题
- 将表作为 html 形式的隐藏值传递 - 奇怪的单/双引号问题
- x -可编辑字段问题,单引号
- php echo语句中html标记的javascript中的双引号、单引号问题
- jquery在IE7和单引号中的问题
- 关于正则表达式中单引号和双引号的问题
- 单引号内 Javascript 双引号的字符串问题