Невозможно передать php переменные в параметре в HTML клике - PullRequest
1 голос
/ 04 февраля 2020

Я пытаюсь передать больше чем 1 php параметр в параметре в onclick.

<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 . '\')'; ?>"

1 Ответ

1 голос
/ 04 февраля 2020

Я бы поставил это как комментарий, но текст-заполнитель в комментариях говорит, что не следует помещать ответы в комментарии ...

Во-первых, analyse должна быть функцией JS, а не PHP function .. Кроме того, вам не нужно помещать 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>
...