Следующие примеры на этой странице: http://www.formget.com/submit-form-using-ajax-php-and-jquery/ Я конвертирую формы на одном из своих сайтов, чтобы использовать ajax для отправки, таким образом, использование может использовать кнопки вперед и назад, а их информация isn показывается в адресной строке. Он работает до сих пор на страницах с одной формой. Но на одной странице есть несколько форм. .Представление формы ajax с несколькими формами jquery
Форма от campers.php
<form id="retro1457806069">
<input type="hidden" id="class" name="classa" value="retro">
<input type="hidden" id="type" name="type" value="1">
<input type="submit" id="submit" value="Rent This Camper"></form>
<form id="two1457806069">
<input type="hidden" id="class" name="classa" value="classtwo">
<input type="hidden" id="type" name="type" value="1">
<input type="submit" id="submit" value="Rent This Camper"></form>
<form id="three1457806069">
<input type="hidden" id="class" name="classa" value="classthree">
<input type="hidden" id="type" name="type" value="1">
<input type="submit" id="submit" value="Rent This Camper"></form>
тех фактические форм коды, генерируемая моего сценарий (со всем избыточным текстом и таким удален вокруг них
script.js:
$(document).ready(function() {
$("#submit").click(function() {
var classa = $("#classa").val();
var type = $("#type").val();
// Returns successful data submission message when the entered information is stored in database.
var dataString = 'class=' + classa + '&type=' + type;
if (classa == '' || type == '') {
alert("Please Fill All Fields");
} else {
// AJAX Code To Submit Form.
$.ajax({
type: "POST",
url: "campersub.php",
data: dataString,
cache: false,
success: function(result) {
window.location.assign("gear.php")
}
});
}
return false;
});
});
campersub.php
<?php
session_start();
$_SESSION["class"]=$_POST["class"];
$_SESSION["type"]=$_POST["type"];
echo "Success.";
?>
Проблема заключается в том, что вместо добавления информации о форме в массив $ _SESSION и перенаправления браузера на gear.php, когда я нажимаю на первую кнопку отправки, абсолютно ничего не происходит. Но когда я нажимаю на вторую или третью кнопки отправки, он перенаправляет страницу на campers.php? Classa = classone & Тип = 1, например.
Какой смысл делать AJAX, а затем перенаправлять? Вместо этого отправьте форму, перенаправив ее с сервера. Также никогда не давайте ничего имени или id = submit, наконец, если вы настаиваете на Ajax, do '$ (" form "). On (" submit ", function (e) {e.preventDefault();' вместо отправки кликов и return false – mplungjan
Это связано с тем, что вы не можете использовать одни и те же значения 'id'. Все кнопки отправки все используют' # submit' для запуска. Вам нужно переработать это, чтобы работать только с атрибутом класса. В любом месте вы видите тот же 'id' , вам нужно изменить на 'class =" независимо от того, '' затем использовать '$ (this)', чтобы сузить до формы, в которой вы сейчас действуете. – Rasclatt
Или вообще не использовать событие кнопки отправки! Чтобы обрабатывать форму submit, используйте событие отправки формы и запретите удаление, чтобы остановить отправку. – mplungjan