双引号,单引号在HTML代码的JavaScript proble在PHP echo语句

双引号,单引号在HTML代码的JavaScript proble在PHP echo语句

问题描述:

我使用echo语句的onchange选择标签的我已经使用的JavaScript双引号,单引号在HTML代码的JavaScript proble在PHP echo语句

     echo('<select name="type" onchange="(return location.href='.?&amp;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='.?&amp;class=.'+this.value; 
} 

那么有没有用,我可以使用此功能

试试这个,在PHP中你必须用反斜杠

逃脱单引号0
echo('<select name="type" onchange="(return location.href=\'?&amp;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=\'.?&amp;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=\'.?&amp;class=.\'"+this.value;)" ... 

逃生你想有作为一个字符串文字中的单引号。就像这样:

echo('<select name="type" onchange="(return location.href=\'.?&amp;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='.?&amp;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。 它可以帮助您避免以下不可避免的报价不匹配问题。