2013-05-11 93 views
4

我使用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; 
} 

那麼有沒有用,我可以使用此功能

回答

0

試試這個,在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>'); 
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>'); 
0

你能逃脫單引號是這樣的:

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

這些是跳躍進入和退出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。 它可以幫助您避免以下不可避免的報價不匹配問題。