首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ajax大型表单提交的更短方式

ajax大型表单提交的更短方式
EN

Stack Overflow用户
提问于 2017-01-09 06:26:45
回答 1查看 157关注 0票数 0

这里一切正常,但我需要一个更短的方法,如果可能的话,只要您看到. 20项

代码语言:javascript
运行
复制
<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

代码语言: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

代码语言:javascript
运行
复制
$_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();
}

我知道,在javascript端提交经典表单而不是ajax过程将是一种更短的方式,但我希望在处理后保持输入的填充,以防出现问题,因此用户不能再次填充它们。

在php方面,也许有一种方式可以这样说:

foreach post variable - find corresponding column - and insert variable value

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-09 06:34:06

您可以通过序列化数据来做到这一点。尝尝这个。

代码语言:javascript
运行
复制
$('#btnregister').click(function(){
 $.ajax({
  url: 'regpro.php',
  type: 'post',
  data: $('#your-form-id').serialize(),
  success: function(data) {
    ...
  }
 });
});  
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41542136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档