На моем сайте должна быть возможность удалить определенные данные из базы данных, но вы можете удалить только те данные, которые вы создали. Если вы посмотрите на некоторые данные, мой 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=""
игнорируется?
Ваша проблема в том, что вы используете цитаты немного неправильно. Использование двойных кавычек для 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
}
Других решений пока нет …