ajax大表单提交的简短方法

时间:2017-01-09 06:26:46

标签: javascript php jquery ajax forms

一切都在这里工作,但如果可能的话,我需要更短的方式,无论你在哪里看到 ... 20件

<input type='text' id='inputname' maxlength='50' placeholder='Name' required>
<input type='text' id='inputsname' maxlength='50' placeholder='Surname'>
... and so on... 20 fields.
<button id='btnregister'>Register</button> 

的javascript

$('#btnregister').click(function(){
var name = $('#inputname').val();
var sname = $('#inputsname').val();
... 20 items
$.ajax({
    url: 'regpro.php',
    type: 'post',
    data: {
        'name': name,
        'sname': sname,
        ... 20 items
        },
    success: function(data) {
        if (data == 'exists') {
            alert ('name allready exists');
        }
        else if (data =='empty'){
            alert ('something is missing');
        }
        else{
            location.href = 'login.php?ref="reg"';
        }
    }
});
});  

regpro.php

$_POST = array_map( 'stripslashes', $_POST );
extract($_POST);
try {
$stmt = $db->prepare('INSERT INTO members (name, sname... 20 items) VALUES (:name, :sname... 20 items)');
$stmt->execute(array(
    ":name" => $name,
    ":sname" => $sname,
    ... 20 items
));
}
catch(PDOException $e) {
echo $e->getMessage();
}

我知道经典表单提交而不是ajax程序在javascript方面会有一些较短的方式,但是我想在处理后保持输入填充,以防出现问题,所以用户不能再填充它们。

在php方面,也许有办法说出这样的话:
foreach post variable - find corresponding column - and insert variable value

1 个答案:

答案 0 :(得分:1)

您可以通过序列化数据来完成此操作。试试这个。

$('#btnregister').click(function(){
 $.ajax({
  url: 'regpro.php',
  type: 'post',
  data: $('#your-form-id').serialize(),
  success: function(data) {
    ...
  }
 });
});