0

ドロップ ボックスから取得した変数を 1 つの引数として、javascript 関数を呼び出そうとしています。このスクリプトは、「this.value」を使用して現在のドロップ ボックスから値を渡した場合にのみ正常に機能しますが、変数を渡そうとするとコードが機能しません。echo ステートメントを使用すると、変数はドロップ ボックスの値から適切に入力されます。問題は、変数を実際にjavascript関数に渡すことにあると思います。書き込みステートメントが実行されないため、関数 showSection(q, r) が呼び出されることはありません。どんな助けでも大歓迎です。ここに私のphpとjavascriptコードがあります

echo "<select name=\"course\" onchange=\"showSection($q, this.value)\">";
4

2 に答える 2

0

$q または this.value が文字列値の場合、引用符で囲む必要があります。

echo "<select name='course' onchange='showSection(\"$q\", \"this.value\")'>";
于 2012-04-21T09:40:06.613 に答える
0

$qの値を挿入しても JavaScript 構文エラーが発生しないことを確認する必要があります。これを行う合理的な方法はjson_encode、値に対して使用することです。

その後、HTML を正しく保つために、その値で一重引用符と二重引用符の両方がエスケープされていることを確認する必要があります。htmlspecialcharsそのために使用されます。私の意見では、一重引用符と二重引用符の両方を常に ( ENT_QUOTES) に変換することが最良の選択です。

そして最終結果は次のとおりです(ここではヒアドキュメント構文を使用しています。読みやすいためです):

$escaped = htmlspecialchars(json_encode($q), ENT_QUOTES);
echo <<<HTML
<select name="course" onchange="showSection($escaped, this.value);">
HTML;
于 2012-04-21T10:31:18.643 に答える