PHP:将变量传递给javascript方法

时间:2013-11-02 18:32:07

标签: javascript php html

我拥有的内容:

尝试以这种方式将变量传递给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的名字?

2 个答案:

答案 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>

我希望这会有所帮助。