首页 > 解决方案 > 无法在 HTML onclick 的参数中传递 php 变量

问题描述

我试图在 onclick 的参数中传递超过 1 个 php 变量。

<button type="button" class="btn btn-dark bmd-btn-fab bmd-btn-fab-sm" 
onclick="<?php echo 'analyse(\'' . $name . '\', \''. $type .'\')'; ?>">
    <img src="../assets/add.png" />
</button>

对于仅 1 个参数,它与此一起使用:

onclick=<?php echo "analyse('$name')"; ?>"

和这个:

onclick="<?php echo 'analyse(\'' . $name . '\')'; ?>"

标签: javascriptphphtmlonclick

解决方案


我会将其作为评论,但评论中的占位符文本表示不要在评论中添加答案......

首先,analyse必须是 JS 函数,而不是 PHP 函数。另外,您不需要放在analyse代码<?php块内。

<button onclick="analyse('<?php echo $name ?>', '<?php echo $type ?>')">

完整的演示 PHP 文件:

<?php
$name = "John Smith";
$type = "Best Type"
?>
<div>
    <button onclick="analyze('<?php echo $name ?>', '<?php echo $type ?>')">Show Name</button>
    <p id="results"></p>
</div>
<script>
    function analyze(name, type) {
        document.getElementById("results").innerHTML = "<b>NAME:</b> " + name + " <b>TYPE:</b> " + type;
    }
</script>

详细地说,以防万一您想使用 PHP 函数返回名称或类型,您可以像这样使用它:

<?php
$name = "John Smith";
$type = "Best Type";

function get_Name($nameToGet) {
    return $nameToGet;
}

function get_Type($typeToGet) {
    return $typeToGet;
}
?>
<div>
    <button onclick="analyze('<?php echo get_Name($name) ?>', '<?php echo get_Type($type) ?>')">Show Name</button>
    <p id="results"></p>
</div>
<script>
    function analyze(name, type) {
        document.getElementById("results").innerHTML = "<b>NAME:</b> " + name + " <b>TYPE:</b> " + type;
    }
</script>

推荐阅读