2012-04-09 8 views
1

PHPでonclickイベントを伴うJavaScript関数を渡そうとしています。私が直面しています問題は、私は渡す必要がある関数は次のように二重引用符にする必要がありますパラメータがあるということです。私はそれがうまく出てくるパラメータを生成するためにJavaScriptを使用している場合今PHPでパラメータを持つjavascript関数をエコー

onclick="removeElement("div8")" 

を、しかしいつでも私はブラウザに機能を見たとき、私はPHPのエコー機能を使用して、次のことが起こる

onclick="removeElement(" div8")" 

私はこれを生成するために使用していたコードは次のとおりです。$

echo '<div><img src="img.png" alt="image" onclick="removeElement("div'.$x.'")" /></div>'; 

xはパラメータに追加する数値です。

関数が全体として返され、その間にスペースを入れない方法はありますか?

答えて

5

。これはうまく動作せず、HTMLパーサーが壊れます。それはremoveElement(とonclickを見て、そしてdiv8")"と呼ばれる属性を見る。

はこれを試してみてください:

echo '.....onclick="removeElement(&quot;div'.$x.'&quot;)"...'; 

HTMLエンティティは、属性内で解析され、その結果があなたの作業コードになります。

2
はこれにあなたのエコーを変更

:あなたが引用符内の引用符を持っているので、これが起こっている

echo '<div><img src="img.png" alt="image" onclick="removeElement(\'div'.$x.'\')" /></div>'; 
+0

このメソッドは動作しません – Keleb

1

は、限り、あなたはあなたがHTMLの属性値の前後に引用符をOMMITすることができ、属性値にスペースを使用しないよう、あなたの単一引用符に

echo '<div><img src="img.png" alt="image" onclick="removeElement(\'div'.$x.'\')" /></div>'; 
+0

はHTMLで動作しません – Keleb

+0

あなたはどういうことを言っていますか? HTMLではなく、JavaScriptで引用符をエスケープしています。 – Dutchie432

+0

ブラウザから見るとHTMLは機能に\静止しているので表示されません – Keleb

1

をエスケープしてみてください。すべてのブラウザがその罰金を処理します。だから、書くことができます。

onclick="removeElement('div8')" or 
onclick='removeElement("div8")' 

それとも、二重引用符脱出することができます:あなたはJavaScriptで引用符をエスケープする必要があり

echo '<div><img src="img.png" alt="image" onclick="removeElement(\"div'.$x.'\")" /></div>'; 
+0

引用符を"に置き換える必要があります。この文脈では間違っています。 – Dima

+0

このチップをお返事ありがとうございます。 – Keleb

+0

@Dima上記の構文を使用すると、まだ動作します。 – Keleb

2

onclick=removeElement("div8") 

をまた、単一引用符を使用することができます。代わりに

onclick="removeElement("div8")" 

のあなたは

onclick="removeElement(&quot;div8&quot;)" 
0

を書くべきであるが、簡単な解決策は、直接HTMLで書くことになります:

?> 
<div> 
<img src='img.png' alt='image' onclick='removeElement("div<?php echo $x; ?>")' /> 
</div> 
0

あなたがPHPのエコーを使用している場合

<a href="javascript:add_cota(<?php echo $value->ID .','.$k.', \''.$st.'\'';?>)"> 
このコードを試してみてください

$st is the string param to avoid the ReferenceError: Active is not defined error

関連する問題