PHP:将变量传递给javascript方法

PHP: pass variable to javascript method

本文关键字:javascript 方法 变量 PHP      更新时间:2023-09-26

我有什么:

尝试以这样的方式将变量传递给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方法仅表单的名称?

我认为

您只是缺少一些引号:

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

请注意我放在$name周围的'"。在你的代码中,如果$name = "Foo",它将写入show(Foo)而不是show("Foo")

我认为您没有正确转义字符串以供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>

我希望这有所帮助。