0

私が持っているもの:

そのような方法で変数をjavascriptメソッドに渡すようにしてください:

$name = (string) $form->attributes()->name;
$show = 'show("'.$name.'")';
echo '<input type="radio" onclick="'.$show.'">'.$form['description'].'<br />';
print_r($show); // show("feedback")
...
<script>
function show(name) {
    //DEBUG HERE!
    ...
}
</script>

なんて問題:

ブラウザーのデバッガーでは、 showメソッドにフォーム全体を渡したことがわかります(引数名がフォーム全体に等しいことを意味します)。

質問:

なぜそれが起こるのですか?フォームの名前のみをjsメソッドに渡す方法は?

4

2 に答える 2

2

その周りにいくつかの引用符が欠けていると思います:

echo '... onclick="show(\"'.$name.'\")> ...';

に注意して\"ください$name。あなたのコードでは、 if$name = "Foo"show(Foo)代わりにshow("Foo").

于 2013-11-02T18:35:08.570 に答える
0

JS関数で使用するために文字列を適切にエスケープしていないと思います。次のように文字列をエスケープしてみてください。

$name = 'feedback';
$description = 'description';

//like this
echo '<input type="radio" onclick="show('. "'" . $name . "'" . ')">' . $description . '<br/>';

// or like this
echo "<input type=\"radio\" onclick=\"show(' . $name  . ')\">" . $description . "<br/>";

<script>
function show(name) {
  alert(name);
}
</script>

これが役立つことを願っています。

于 2013-11-02T19:27:45.227 に答える