предотвратить отправку формы из перенаправления / обновления с помощью javascript

У меня есть страница, где вы можете вводить данные в ряд texboxes (сгенерированных с php) и 2 кнопки, GetData и SaveData. Я хочу, чтобы иметь возможность нажать enter при редактировании texboxes, и он выполнит то же действие, что и нажатие кнопки SaveData (onclick = “onSave ();”). Я могу добиться этого, выполнив следующее:

но когда я нажимаю кнопку ввода, страница перенаправляется на страницу без сообщения php (ex.:www.mypage.com/index.php, а не www.mypage.com/index.php?edit_data=true)

Как я могу достичь того, чего хочу?

try

Ответ был (спасибо Улиссе за часть ответа):

 

Мой onSave (); функция вернула false, но поскольку она выполняла redirect, мне пришлось поместить значение false после onSave (); (объяснить, почему??)

Благодаря!

Убедитесь, что ваш onSave(); возвращает false и меняет действие на onsubmit="return onSave();" ,

хм … умышленно ли вы забыли метод tag = “POST”? 🙂

  1. button1 как кнопка отправки

  2. button2 как type = ‘button’ on cliking button2 вызывает функцию javascript, которая создает lik, используя window.location.href = “www.mypage.com/index.php?edit_data=true”

Ни одно из этих предлагаемых решений не работало для меня при использовании формы PHP.

По сути, я хотел бы сделать простую форму, которая скроется после ее отправки. Я использовал jQuery для прослушивания, когда произошел щелчок, но это не имело значения, потому что страница обновилась. Затем я использовал JS для предотвращения поведения по умолчанию для представления (например, e.preventDefault(); ). Что я придумал …

Я закончил установку действия формы на «#», чтобы изменить URL после отправки формы. Javascript считывает URL-адрес hashа и спрячет / покажет необходимые элементы, а затем перенаправит через несколько секунд, если он присутствует. Да, страница все еще обновляется, но я получаю правильное поведение, используя JS с функцией обновления страницы.

Вот мой код:

 < ?php include_once 'db.php'; // includes login to DB if('POST' === $_SERVER['REQUEST_METHOD'] && isset($_POST['submit'])) { $ip = $_POST['publicIP']; $sql_query = "INSERT INTO tablename(PublicIP) VALUES('$ip')"; mysql_query($sql_query); } ?>