2015-02-18 2 views
0

Я искал ответ на свой вопрос, но не нашел решения. Вот аналогичная тема link, но у меня есть другой код, и я не знаю, как подобрать ответ из этой темы в мой код.jQuery submit функция не отправляет ввод Отправить

Вот моя проблема. Я отправляю свою форму с идентификатором order_form на номер test.php. Каждое значение формы отправляется правильно, кроме input submit. Мой скрипт основан на проверке отправки <input id="sendform" type="submit" value="ORDER PRODUCT" name="sendform"/>.

Ниже приведен код, используемый для отправки формы.

$("#order_form").submit(function() { 

    $.ajax({ 
      type: "POST", 
      url: "includes/test.php", 
      data: $("#order_form").serialize(), // serializes the form's elements. 
      success: function(data) 
      { 
       alert(data); 
      } 
    }); 

    return false; // avoid to execute the actual submit of the form. 
}); 

А вот содержание test.php

echo '<pre>'; 
print_r($_POST); 
echo '</pre>'; 

Вот нелогич- форма, потому что моя форма экстремально большой.

<form id="order_form"> 
     <input type="text" name="w2b" value="abc"/> 
     <input id="sendform" type="submit" value="ZAMAWIAM" name="sendform"/> 
    </form> 
+1

форму заказа, как реализуется в HTML будет быть полезным. – collapsar

+0

'избегать выполнения фактического представления формы.' Для этого используйте 'e.stopPropagation()'. – void

+0

Я добавил форму. –

ответ

0

В HTML5 формах, когда вы проходите через параметры и переменные в функции АЯКС данных значений из «Submit входов» не прошел. Поэтому, если у вас есть форму, установленную как:

<form> 
<input type="text" name="foo" value="bar"> 
<input type="submit" name="submitTest" value="Hello World!"> 
</form> 

Значение "submitTest" не отправляется. Единственное, что отправляется, - это параметр «foo» со значением «bar». «submitTest» только отправляет форму и выполняет этот вызов ajax в этом случае.

Чтобы исправить это, просто добавьте скрытый элемент в форму. Теперь это будет выглядеть этот

<form> 
<input type="text" name="foo" value="bar"> 
<input type="hidden" name="sendform" value="ZAMAWIAM"> 
<input type="submit" name="submitTest" value="Hello World!"> 
</form> 

Это будет посылать через значение для вашего AJAX вызова, и вы можете использовать его для все, что вам может понадобиться для.

+0

Так что нет способа отправить это, и я должен переписать свой код. –

+0

@WalterWhite проверить изменения, которые я только что сделал выше –

+0

Ну, это именно то, что я сделал. Ваш совет был полезен. Спасибо. –

0

Убедитесь, что вы обернуть код JQuery в

$(function(){ 
//code here 
}); 

Опять не забудьте, чтобы предотвратить событие по умолчанию, то ниже переписывание кода JQuery

$(function(){ 
$("#order_form").submit(function(event) { 

event.preventDefault(); 

    $.ajax({ 
      type: "POST", 
      url: "includes/test.php", 
      data: $("#order_form").serialize(), // serializes the form's elements. 
      success: function(data) 
      { 
       alert(data); 
      } 
    });//end ajax 

});//end on submit 

});//end jquery 
Смежные вопросы