使用ajax和js发布数据

时间:2013-12-06 21:48:12

标签: javascript php jquery ajax

每当我尝试使用下面的类发布我所制作的数组(也在下面)时,ajax请求不会将输入作为$_POST值传递,而是作为$_REQUEST值传递在屏幕顶部的网址栏中看到。我对Ajax和javascript(仅使用它大约一个月)非常陌生,因此非常感谢任何提示和技巧来修复以下内容。

var formErrors=["Passage","FirstName","Zip"];
var formInput=["EventID","Passage","FirstName","LastName","Email","Organization","Location","Zip"];

HTML负责人

    $(function () {
        $("#signUp").click(function() {
            if(formArrayValidation(formErrors) != false) {      
                formPostAjax(formInput, 'join-event.php');
            }
            return false;                   
        });          
     });

Basics.js

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() { 
    } 
}); 
}

1 个答案:

答案 0 :(得分:0)

您的事件监听器应该在表单上,​​它应该是:

$('#form_identifier').submit(...);

此外,jQuery为序列化表单数据提供了一个很好的快捷方法:

$('#form_identifier').submit(function(){
   var post_data = $(this).serialize()
   // ....
   return false;
});