2014-10-23 4 views
0

Не знаю, почему это не работает ... о да, я еще новичок. У меня есть форма, которая отправляет данные в db, и работает отлично, если я просто использую POST. Я не работаю, если передать его функции javascript с некоторым AJAX, а затем отправить его. Это работает с функцией «GET», которая отправляется из функции, не работает с «POST». С «POST» я подключаюсь к БД прекрасно, но значения из формы пустые, поэтому db обновляется с новой записью, у которой все поля пустые. HERE - это скрипка, я помещаю php-код, куда должен идти CSS: http://jsfiddle.net/DuckofDeath/6var7103/. Вот ссылка на страницу, все отзывы от сценария отсылается тот он странице в верхней части: http://www.modernmediaworld.com/diaboli/register3.php функции checkForm() {отправка POST-значений javascript

 function checkForm(){ 

    if (window.XMLHttpRequest) { 
     // code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
    } else { // code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange=function() { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
      document.getElementById("formFeedback").innerHTML=xmlhttp.responseText;    
     } 
    } 
    xmlhttp.open("POST","addNewSeeker.php",true);   
    xmlhttp.send(); 

    } 
+4

Вы помечено это с JQuery, так что если вы используете JQuery, почему вы не просто использовать '$ .ajax' или' $ .post'. jQuery обрабатывает этот низкоуровневый материал ajax для вас. –

+0

http://jsfiddle.net/robertrozas/6var7103/2/ – Hackerman

+1

вам необходимо передать строку запроса (то же, что вы передадите с GET) в метод 'send()'. – Sebas

ответ

0

Я знал, что это должно было быть что-то простое, и после того, как много рытье Оказывается, я просто должен был использовать FormData:

вар е = e.target, FormData = новый FormData (е),

Затем используйте это в качестве аргумента при отправке:

xhr.open («POST», f.action, true); xhr.send (formData);

это то, что мой код выглядит сейчас:

document.getElementById("seekerForm").onsubmit = function(e) { 
e.preventDefault(); 

var f = e.target, 
formData = new FormData(f), 
xhr = new XMLHttpRequest(); 
xhr.onreadystatechange=function() { 
if (xhr.readyState==4 && xhr.status==200) { 
    document.getElementById("formFeedback").innerHTML=xhr.responseText; 
    $('#formModal').foundation('reveal', 'open'); 
} 
       } 
xhr.open("POST", f.action,true); 
xhr.send(formData); 

}

0

Вы отправляете данные на сервер, но вы не отправлять это что угодно. POST предназначен для отправки глобусов информации на сервер. GET предназначен для получения страницы. В этой ситуации вы устанавливаете содержимое формыFeedback тем, что вы слышите. Итак, если это то, что вы хотите, придерживайтесь GET и переключитесь на jQuery $ .Ajax-вызов (поскольку вы отметили jQuery), это делает его намного проще.

Смежные вопросы