Форма onsubmit = & quot; & quot; с окном подтверждения не работает

На моем сайте должна быть возможность удалить определенные данные из базы данных, но вы можете удалить только те данные, которые вы создали. Если вы посмотрите на некоторые данные, мой php-код проверяет, является ли учетная запись, в которую вы вошли, «учетной записью создателя» данных. Если да, он покажет вам кнопку, чтобы удалить данные.

if ($_SESSION['userID'] == $creatorID) {
echo
'<form onsubmit="return confirm("Do you really want to delete this entry?");" class="c-inline" action="delete.php" method="post">
<input name="query" type="hidden" value ="'. $id .'"/>
<button id="btnDelete" type="submit" class="btn btn-danger" name="button" title="Eintrag löschen">
<span class="glyphicon glyphicon-trash" aria-hidden="true"></span> Löschen
</button>
</form>';
}

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

Любые идеи, почему мой onsubmit="" игнорируется?

0

Решение

Ваша проблема в том, что вы используете цитаты немного неправильно. Использование двойных кавычек для onsubmit атрибут и функция внутри, которая разбивает кавычки. Так что ваши onsubmit только видит return confirm( (потому что после этого следует цитата того же типа, с которой вы открыли этот атрибут). Замените внутренние двойные кавычки одинарными кавычками; но они должны быть спасены (потому что вы echo эта строка).

<?php
if ($_SESSION['userID'] == $creatorID) {
echo
'<form onsubmit="return confirm(\'Do you really want to delete this entry?\');" class="c-inline" action="delete.php" method="post">
<input name="query" type="hidden" value ="'. $id .'"/>
<button id="btnDelete" type="submit" class="btn btn-danger" name="button" title="Eintrag löschen">
<span class="glyphicon glyphicon-trash" aria-hidden="true"></span> Löschen
</button>
</form>';
}

Более читаемой альтернативой будет выход из режима PHP и вывод его в виде чистого HTML. Таким образом, вы можете использовать одинарные кавычки без необходимости избегать их.

<?php
if ($_SESSION['userID'] == $creatorID) {
?>
<form onsubmit="return confirm('Do you really want to delete this entry?');" class="c-inline" action="delete.php" method="post">
<input name="query" type="hidden" value ="<?= $id ?>"/>
<button id="btnDelete" type="submit" class="btn btn-danger" name="button" title="Eintrag löschen">
<span class="glyphicon glyphicon-trash" aria-hidden="true"></span> Löschen
</button>
</form>
<?php
}
2

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

Других решений пока нет …

По вопросам рекламы [email protected]