Отправка HTML формы с помощью jQuery AJAX
Im пытается отправить HTML-форму с помощью AJAX с помощью .
мой HTML код:
<form id="formoid" action="studentFormInsert.php" title="" method="post">
<div>
<label class="title">First Name</label>
<input type="text" id="name" name="name" >
</div>
<div>
<label class="title">Name</label>
<input type="text" id="name2" name="name2" >
</div>
<div>
<input type="submit" id="submitButton" name="submitButton" value="Submit">
</div>
</form>
мой скрипт:
<script type="text/javascript">
$(document).ready(function() {
$('#formoid').ajaxForm(function() {
alert("Thank you for your comment!");
});
});
</script>
это не работает, я даже не получить предупреждение
и когда я отправляю, я не хочу перенаправлять на другую страницу, Я просто хочу показать предупреждающее сообщение.
есть ли простой способ сделать это?
PS: у меня есть несколько полей, я только что поставил два в качестве примера.
3 ответов:
краткое описание AJAX
AJAX-это просто асинхронный Javascript или XML (в большинстве новых ситуаций JSON). Поскольку мы выполняем асинхронную задачу, мы, вероятно, предоставим нашим пользователям более приятный пользовательский интерфейс. В данном конкретном случае мы делаем отправку формы с помощью AJAX.
очень быстро есть 4 общих веб-действий
GET,POST,PUTиDELETE; они непосредственно соответствуютSELECT/Retreiving DATA,INSERTING DATA,UPDATING/UPSERTING DATAиDELETING DATA. По умолчанию HTML / ASP. Net webform / PHP / Python или любой другойformдействие состоит в том, чтобы" отправить", что является действием POST. Из-за этого ниже будет все описывать делать пост. Иногда, однако, с http вы можете захотеть другое действие и, вероятно, захотите использовать.ajax.мой код специально для вас (описан в комментариях к коду):
<!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> </head> <body> <form id="formoid" action="studentFormInsert.php" title="" method="post"> <div> <label class="title">First Name</label> <input type="text" id="name" name="name" > </div> <div> <label class="title">Name</label> <input type="text" id="name2" name="name2" > </div> <div> <input type="submit" id="submitButton" name="submitButton" value="Submit"> </div> </form> <script type='text/javascript'> /* attach a submit handler to the form */ $("#formoid").submit(function(event) { /* stop form from submitting normally */ event.preventDefault(); /* get the action attribute from the <form action=""> element */ var $form = $( this ), url = $form.attr( 'action' ); /* Send the data using post with element id name and name2*/ var posting = $.post( url, { name: $('#name').val(), name2: $('#name2').val() } ); /* Alerts the results */ posting.done(function( data ) { alert('success'); }); }); </script> </body> </html>
документация
С сайта jQuery
$.postдокументация.пример: отправить данные формы с помощью ajax-запросов
$.post("test.php", $("#testform").serialize());пример: опубликуйте форму с помощью ajax и поместите результаты в div
<!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> </head> <body> <form action="/" id="searchForm"> <input type="text" name="s" placeholder="Search..." /> <input type="submit" value="Search" /> </form> <!-- the result of the search will be rendered inside this div --> <div id="result"></div> <script> /* attach a submit handler to the form */ $("#searchForm").submit(function(event) { /* stop form from submitting normally */ event.preventDefault(); /* get some values from elements on the page: */ var $form = $(this), term = $form.find('input[name="s"]').val(), url = $form.attr('action'); /* Send the data using post */ var posting = $.post(url, { s: term }); /* Put the results in a div */ posting.done(function(data) { var content = $(data).find('#content'); $("#result").empty().append(content); }); }); </script> </body> </html>
Важное Замечание
без использования OAuth или как минимум HTTPS (TLS/SSL) пожалуйста, не используйте этот метод для защиты данных (номера кредитных карт, SSN, все, что связано с PCI, HIPAA или login)
var postData = "text"; $.ajax({ type: "post", url: "url", data: postData, contentType: "application/x-www-form-urlencoded", success: function(responseData, textStatus, jqXHR) { alert("data saved") }, error: function(jqXHR, textStatus, errorThrown) { console.log(errorThrown); } })
Если вы добавляете:
jquery.форма.минута.js
вы можете просто сделать это:
<script> $('#myform').ajaxForm(function(response) { alert(response); }); // this will register the AJAX for <form id="myform" action="some_url"> // and when you submit the form using <button type="submit"> or $('myform').submit(), then it will send your request and alert response </script>Примечание: вы можете использовать простой $('форма').serialize () как предложено в сообщении выше, но это не будет работать для входных файлов... ajaxForm() будет.
Comments