Ваш PHP-код в порядке.Однако сгенерированный HTML должен иметь свои атрибуты экранированными.
Например, ваш код выводит что-то вроде
<button onmousedown="javascript: if (document.getElementById("JEntry")) {}"></button>
Как вы можете надеяться, кавычки в javascript соответствуют кавычкам длязначение атрибута.Это приведет к проблемам с синтаксическим анализом.
Чтобы обойти это, используйте одинарные кавычки только в javascript
<button onmousedown="javascript: if (document.getElementById('JEntry')) {}"></button>
или избегайте их.
<button onmousedown="javascript: if (document.getElementById(\"JEntry\")) {}"></button>
По моему мнениюпервый вариант выглядит более аккуратным, особенно если вы считаете необходимым избегать обратной косой черты (\
).Таким образом, ваш фиксированный код будет
echo "<table width=\"640\" style=\"margin-left: auto; margin-right: auto;\"><tr id=\"JEntry".$data['ID']."\" style=\"display: visible\"><td><button onmousedown=\"javascript: if (document.getElementById('JEntry".$data['ID']."').style.display != 'visible') { document.getElementById('JEntry".$data['ID']."').style.display = 'visible'; } else { document.getElementById('JEntry".$data['ID']."').style.display = 'none'; }\">Hide or Show</button>";
Способ чтения этого - неэкранированные двойные кавычки ("
) являются частью вашего PHP, экранированные двойные кавычки (\"
) являются частью вашего HTML, и одиночныецитаты ('
) часть вашего JS.