一切都在这里工作,但如果可能的话,我需要更短的方式,无论你在哪里看到 ... 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
答案 0 :(得分:1)
您可以通过序列化数据来完成此操作。试试这个。
$('#btnregister').click(function(){
$.ajax({
url: 'regpro.php',
type: 'post',
data: $('#your-form-id').serialize(),
success: function(data) {
...
}
});
});