我拥有的内容:
尝试以这种方式将变量传递给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-method only form的名字?
答案 0 :(得分:2)
我认为你只是错过了一些引用:
echo '... onclick="show(\"'.$name.'\")> ...';
请注意\"
我放置$name
。在您的代码中,如果$name = "Foo"
,它会写show(Foo)
而不是show("Foo")
。
答案 1 :(得分: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>
我希望这会有所帮助。