每当我尝试使用下面的类发布我所制作的数组(也在下面)时,ajax
请求不会将输入作为$_POST
值传递,而是作为$_REQUEST
值传递在屏幕顶部的网址栏中看到。我对Ajax
和javascript(仅使用它大约一个月)非常陌生,因此非常感谢任何提示和技巧来修复以下内容。
var formErrors=["Passage","FirstName","Zip"];
var formInput=["EventID","Passage","FirstName","LastName","Email","Organization","Location","Zip"];
$(function () {
$("#signUp").click(function() {
if(formArrayValidation(formErrors) != false) {
formPostAjax(formInput, 'join-event.php');
}
return false;
});
});
formArrayValidation = function(errorArray) {
for(var i = 0; i < errorArray.length; i++) {
$('.error').hide();
var name = $("input#" + errorArray[i]).val();
if (name == "") {
$("label#" + errorArray[i] + "_error").show();
$("input#" + errorArray[i]).focus();
return false;
}
}
}
formPostAjax = function(inputArray, form) {
var dataString = "";
for(var i = 0; i < inputArray.length; i++)
{
var data = inputArray[i];
var dataInput = $("input#" + data).val();
if(i = 0) {
dataString = dataString + data + '=' + dataInput;
}
else {
dataString = dataString + '&' + data + '=' + dataInput;
}
}
$.ajax ({
type: "POST",
url: form,
data: dataString,
success: function() {
}
});
}
答案 0 :(得分:0)
您的事件监听器应该在表单上,它应该是:
$('#form_identifier').submit(...);
此外,jQuery为序列化表单数据提供了一个很好的快捷方法:
$('#form_identifier').submit(function(){
var post_data = $(this).serialize()
// ....
return false;
});