Я получаю следующую ошибку в указанном коде SSCCE:
Error: ReferenceError: electron is not defined
Source File: http://localhost/testingOne.php
Line: 1
В то время как 'electron'
это строка Так почему я получаю эту ошибку. Когда я попробовал принятый ответ Вот и завернутый electron
а также proton
в "
но это дает:
Error: SyntaxError: syntax error
Source File: http://localhost/testingOne.php
Line: 1, Column: 12
Source Code:
clickButton(
Код:
<?php
echo '<html><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
function clickButton(alp, bet) {
alert(alp);
alert(bet);
}
</script>
</head><body>';
$array = array('alpha'=>'electron', 'beta'=>'proton');
echo '<button type="button" onclick="clickButton('. $array['alpha'].','.$array['beta'] .')" >Click Me</button>';
echo '</body></html>';
?>
Если бы вы просмотрели исходный код на фактическом создаваемом HTML, вы бы увидели:
<button type="button" onclick="clickButton(electron,proton)" >Click Me</button>
Вам нужно добавить цитаты вокруг выходные значения, чтобы превратить их в строковые литералы Javascript:
echo '<button type="button" onclick="clickButton(\''. $array['alpha'].'\',\''.$array['beta'] .'\')" >Click Me</button>';
дать:
<button type="button" onclick="clickButton('electron','proton')" >Click Me</button>
Других решений пока нет …