PHP снова избегает синтаксиса

Еще раз спасибо за помощь с похожим вопросом ранее. У меня есть еще один похожий, но я думаю, что сложнее.

В HTML это выглядит так:

<input type="button" class="formButtonDeleteButton" value="" onclick="document.getElementById('WADADeleteRecordID').value=<?php echo($row_WADAactivities2['ActivityID']); ?>;document.getElementById('WADADeleteRecordName').innerHTML='<?php echo($row_WADAactivities2['Activity']); ?>';document.getElementById('deleteBox').style.display = 'block';document.getElementById('deleteMessage').style.display = 'table';" />

Я так далеко с этим справляюсь, но просто немного теряюсь, например:

echo '<input type="button" class="formButtonDeleteButton" value="" onclick="document.getElementById('WADADeleteRecordID').value=' . rawurlencode($row_WADAactivities2['ActivityID']) . ;document.getElementById('WADADeleteRecordName').innerHTML=' . rawurlencode($row_WADAactivities2['Activity']);';document.getElementById('deleteBox').style.display = 'block';document.getElementById('deleteMessage').style.display = 'table';" \"/>";

Это в значительной степени последняя часть того, на что я смотрел, который нужно привести в порядок.

Еще раз спасибо.

-2

Решение

Вам необходимо экранировать все символы в одинарных кавычках, которые находятся внутри строки в одинарных кавычках:

echo '<input type="button" class="formButtonDeleteButton" value="" onclick="document.getElementById(\'WADADeleteRecordID\').value=' . rawurlencode($row_WADAactivities2['ActivityID']) . ;document.getElementById(\'WADADeleteRecordName\').innerHTML=' . rawurlencode($row_WADAactivities2['Activity']);';document.getElementById(\'deleteBox\').style.display = \'block\';document.getElementById(\'deleteMessage\').style.display = \'tabl\e';" \"/>";

Я настоятельно рекомендую не писать такие длинные строки встроенного Javascript. Переместите его в функцию Javascript и используйте onclick="functionName(...)",

0

Другие решения

Видите ли, вы всегда должны решать, нужно ли вообще выводить что-то подобное или вместо этого просто использовать короткие теги, такие как <?=$someVar?> прямо в вашем разделе просмотра кода. Зачем? Потому что гораздо проще иметь дело с НЕ экранированием кавычек: D В любом случае, вы должны выбирать кавычки одинарные или двойные, если вы планируете НЕ иметь никаких переменных внутри строки, используйте одинарные кавычки .. если вы планируете при использовании переменных в строке используйте двойные кавычки, чтобы избежать необходимости конкатенировать. Поскольку вы использовали одинарные кавычки, вам не нужно избегать двойных кавычек, но вы должны избегать других одинарных кавычек внутри:

echo '<input type="button" class="formButtonDeleteButton" value=""     onclick="document.getElementById(\'WADADeleteRecordID\').value=' . rawurlencode($row_WADAactivities2['ActivityID']) .' ;document.getElementById(\'WADADeleteRecordName\').innerHTML=' . rawurlencode($row_WADAactivities2['Activity']).';document.getElementById(\'deleteBox\').style.display = \'block\';document.getElementById(\'deleteMessage\').style.display = \'table\';" />';
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector