Javascript 使用AJAX发布Jquery,序列化是如何工作的?

Javascript 使用AJAX发布Jquery,序列化是如何工作的?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我需要使用JQuery创建一个AJAX请求,一旦表单被验证为不为空,就中断表单,并将表单提交到url,然后它需要获取这些表单值并将它们放入一些变量中,这样我就可以使用它们进行处理。问题是我不知道AJAX是如何工作的 我不知道序列化是如何工作的,它的文档看起来相当抽象。我也无法阻止页面切换URL newGame.onsubmit=函数(e){ var inputs=form.getElementsByTagName(“输入”); 对于(变量i=0;i

我需要使用JQuery创建一个AJAX请求,一旦表单被验证为不为空,就中断表单,并将表单提交到url,然后它需要获取这些表单值并将它们放入一些变量中,这样我就可以使用它们进行处理。问题是我不知道AJAX是如何工作的

我不知道序列化是如何工作的,它的文档看起来相当抽象。我也无法阻止页面切换URL

newGame.onsubmit=函数(e){
var inputs=form.getElementsByTagName(“输入”);
对于(变量i=0;i

玩家1姓名:

玩家2姓名:

假设您想要发布一个包含一些字段的表单,将它们包装为

var formNewGame = { "name":"John", "age":30, "city":"New York"};
在ajax调用中,更改

data: $('#newGame').serialize()
进入


Jquery
ajax
和表单序列化的工作原理如下:

$.ajax(
{
    url: 'http://ins.mtroyal.ca/~nkhemka/process.php',
    type: 'post',
    data: 
    {
        frmData : $('#newGame').serialize();  // It will send value like index1=value1&index2=value2
    },
    success: function(response)
    {
        // Check the response value and show alert
    }
});
process.php

$frmData = $_POST['frmData'];
$params = array();
parse_str($frmData, $params);

print_r($params);
它将给出0、1、2.上的所有表单值。。索引如下:

array(
    'index1' => 'value1',
    'index2' => 'value2'
    // and so on
);

编辑1:

1) 在提交输入中添加了新的id属性

2) 单击submit id运行函数并使用
e.preventDefault()停止默认表单提交

$(文档).ready(函数(){
$(“#提交”)。单击(函数(e){
e、 预防默认值();
误差=0;
$('input')。每个(函数(){
if($(this.prop('required')&&$(this.val()=''){
误差=1;
警报(“输入”+$(this.attr('name')+“name”);
}
});
如果(错误==1){
返回false;
}
$.ajax({
网址:'http://ins.mtroyal.ca/~nkhemka/process.php',
键入:“post”,
数据类型:“json”,
数据:$('#newGame')。序列化(),
成功:函数(){
//loadName();
}
});
});
});

玩家1姓名:

玩家2姓名:

e.preventDefault()
位于函数体顶部,在
newGame.onsubmit=function(e){
之后的一行。无论
e.preventDefault()在哪里
只要调用它,它就会一直运行。但它不是called@JJJ它不可能进入成功回调。如果它是他放置的位置,表单将始终提交,那么您的观点是什么?使用此选项时,页面一直转到process.php页面,您是否使用了此e.preventDefault();行在jquery的顶部,比如我在代码@TristenI中放置的位置等一下,我正在对您的代码进行一些更改@TristenI尝试了它,但它仍然不知何故,尽管它在加载php页面上运行良好,它确实会告诉您输入是否为空,但如果我同时填写两个输入,它将转到php。首先,您应该知道ajax的用法jax用于请求服务器并在不重新加载页面的情况下获取服务器响应,因此它不应更改browser@Tristen上的url
array(
    'index1' => 'value1',
    'index2' => 'value2'
    // and so on
);