2013-05-29 4 views
1

Я пытаюсь использовать AJAX для отправки моей формы, но данные не передаются. Однако я получаю сообщение об успешном завершении.Отправить не вставлять данные?

Должен ли я как-то указать свои переменные в своей строке данных?

var dataString = first_name + surname + email_addr + user_age + user_type; 
//alert (dataString);return false; 

$.ajax({ 
    type: "POST", 
    url: "process-signup.php", 
    data: dataString, 
    success: function() { 
    $('#contact_form').html("<div id='message'></div>"); 
     $('#message').html("<h2>Contact Form Submitted!</h2>") 
    .append("<p>We will be in touch soon.</p>") 
    .hide() 
    .fadeIn(1500, function() { 
     $('#message').append("<img id='checkmark' src='images/check.png' />"); 
    }); 
    } 
}); 
return false; 
+0

Можете ли вы разместить хотя бы объявление функции в PHP-коде? –

+1

Да, конечно, вам нужны имена параметров в строке - как еще ваш сервер мог бы знать, как интерпретировать этот кусок значений? – Pointy

ответ

2

Да. Либо передать JSON как:

JSON.stringify({ firstName: first_name, surName: surname ... }); 

Как было отмечено в комментариях, если вы используете JQuery Ajax, он будет автоматически конвертировать объекты в строку запроса.

или указать имена параметров (вы только передача строки, допустимая строка запроса должна выглядеть «parametername1 = paramatervalue1 & parametername2 = paramatervalue2»):

data: 'firstName=' + first_name + '&surname=' + surname + '&email=' + email_addr ... 

Затем на стороне сервера вы должны иметь переменные например:

$_POST['firstName']; // first_name 
$_POST['surname']; // surname 

Надеюсь, что это поможет.

+0

Если кто-то передает объект '$ .ajax()', то jQuery будет выполнять «строжайшую» работу. – Pointy

+0

Ahh ok не знал этого. Благодарю. –

0

Im немного ржавый на PHP, но вы используете POST, но вы отправляете dataString. Обычно вы используете запрос GET с помощью dataString. Кроме того, datastring обычно выглядит следующим образом:

вар dataString = 'first_name =' + first_name + '& фамилия =' + фамилия + & EMAIL_ADDR = '+ EMAIL_ADDR + & user_age =' + user_age + & user_type = '+ user_type;

Кроме того, если вы используете $ .ajax, функция успеха имеет параметр, данные, который обычно возвращается из скрипта php при эхо.

Так было бы написано так:

success: function(data) { 
    console.log('i got data!',data); 
    } 
1
$.ajax({ 
    type: "POST", 
    url: "process-signup.php", 
    data: {Firstname:first_name,Surname:surname,Email:email_addr,Age:user_age,User_type:user_type}, 
    success: function() { 
    $('#contact_form').html("<div id='message'></div>"); 
     $('#message').html("<h2>Contact Form Submitted!</h2>") 
    .append("<p>We will be in touch soon.</p>") 
    .hide() 
    .fadeIn(1500, function() { 
     $('#message').append("<img id='checkmark' src='images/check.png' />"); 
    }); 
    } 
}); 

return false; 

В стороне использования $_POST['Firstname'] сервера $_POST['Surname'] и т.д., чтобы получить переданное значение.

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