Я создал страницу PHP, которую нужно удалить из своей базы данных. Эта страница PHP является действием отправки формы. Форма отправляется щелчком по картинке со знаком «X». Как я могу попросить пользователя подтвердить до отправки формы и, следовательно, удаления из моей базы данных?

Это мой код:

<form method='POST' action='delete.php'><input type='image' src='images/delete.png' class='del' alt='Submit Form' />

Я попытался сделать это встроенным, добавив это в свой тег формы, но это не сработало:

onsubmit="return confirm('Are you sure you want to submit this form?');"
4
Sahar Alsadah 20 Сен 2016 в 14:49

2 ответа

Лучший ответ

Из комментария OP:

echo "onclick='return confirm(\'Are you sure you want to submit this form?\');'"

Вы не можете использовать одинарные кавычки в значении атрибута, разделенном одинарными кавычками.

Ваши варианты:

Используйте двойные кавычки в JS

echo "onclick='return confirm(\"Are you sure you want to submit this form?\");'"

Используйте двойные кавычки в HTML

echo "onclick=\"return confirm('Are you sure you want to submit this form?');\""

Использовать объекты

echo "onclick='return confirm(&quot;Are you sure you want to submit this form?&quot;);\""

Когда вы помещаете JavaScript в значение атрибута HTML внутри строки PHP, у вас есть три разных языка, смешанных вместе, и вы должны быть очень, очень осторожны с экранированием, чтобы вы избегали правильных символов для правильных языков в нужное время .

Как правило, лучше сводить содержимое строк PHP к минимуму. Переходите в режим PHP, только если у вас есть переменная.

?>
    <form method='POST' action='delete.php'>
        <input type='image' src='images/delete.png' class='del' alt='Submit Form' onclick="return confirm('Are you sure you want to submit this form?');" />
    </form>
<?php

По той же причине лучше хранить свой JavaScript во внешнем файле и прикреплять обработчики событий с помощью addEventListener вместо атрибутов onFOO.

4
Quentin 20 Сен 2016 в 14:34

Это будет работать

  <form method='POST' action='delete.php' onsubmit="return confirm('Are you sure you want to submit this form?');">
<input type='image' src='images/delete.png' class='del' alt='Submit Form' /></form>
0
manu 20 Сен 2016 в 12:00