Отправка 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: у меня есть несколько полей, я только что поставил два в качестве примера.

644   3  

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

    Ничего не найдено.