我有一个通过jQuery表单向导的表单,所有部分工作正常,最后一个选项卡让用户有机会在提交之前查看输入。
On Submit我已将下面的代码发送到数据库。我的问题是POST数据没有到达数据库,插入了一行,但它是一个空行。
我已经测试了Insert并手动输入了数据,因此当点击Submit时,这会输入到db中。
如何将表单中的数据导入数据库?
$('#form_myform1').find('.button-previous').hide();
$('#form_myform1 .button-submit').click(function (e) {
$.ajax({
url:'includes/myforms/myforms_form1.php',
data:$(this).serialize(),
type:'POST',
success:function(data){
console.log(data);
$(".alert-success").show().fadeOut(5000);
},
error:function(data){
$(".alert-danger'").show().fadeOut(5000);
}
});
}).hide();
我的PHP POST代码(是的,我知道它不是PDO ;-)我在此位置有PDO和我的init.php文件的其他问题因此现在使用mysql_。)
<?php
require '../../assets/functions/core/cnn.php';
if(!empty($_POST['appraisename'])) {
$appraisename = htmlspecialchars(trim($_POST["appraisename"]));
}
$form1sql = "INSERT INTO myforms_personaldetails (name)
VALUES('".$appraisename."') ";
mysql_query($form1sql) or die(mysql_error());
?>
答案 0 :(得分:2)
您的问题是读取data:$(this).serialize(),
的行。该行中的this
指的是按钮,而不是表单......
将该行更改为:
data:$("#form_myform1").serialize(),
- 这应该可以正常使用。
然而,在你的情况下,似乎这仍然是一些空白。
因此,既然您只使用了一位数据,那么只需明确设置数据:
data : { apprasename : $("#idOfYourInputBox").val() }
根据serialize()
无效的原因 - 我需要查看表单标记......
答案 1 :(得分:1)
我现在正在使用的Ajax代码
$('#form_myform1').find('.button-previous').hide();
$('#form_myform1 .button-submit').click(function (e) {
$.ajax({
url:'includes/myforms/myforms_form1.php',
data:$('#submit_form').serialize(),
//data : { appraiseid : $("#appraiseid").val() },
type:'POST',
success:function(data){
console.log(data);
$(".alert-success").show().fadeOut(5000);
},
error:function(data){
$(".alert-danger'").show().fadeOut(5000);
}
});
}).hide();