我已经多次这样做了,我确信我的代码与使用$ .post方法将数据保存到数据库中的代码一样。但是,我现在这个代码返回一个内部服务器错误,我一直在玩这个问题几个小时,似乎代码没有问题,但它对我来说不起作用。你能指点我的代码问题,我该如何解决?请帮忙。非常感谢。这是我的代码。
表格
<form id="agi_tech_form" method="post">
<table class="table table-bordered table-hover">
<tbody>
<tr>
<td><label for="at_fname"><span class="lead at-text">First Name</span></label><input type="text" class="form-control" name="at[fname]" id="at_fname" value="" placeholder="First Name" style= "width: 300px;"/></td>
<td><label for="at_lname"><span class="lead at-text">Last Name</span></label><input type="text" class="form-control" name="at[lname]" id="at_lname" value="" placeholder="Last Name" style= "width: 300px;" /></td>
</tr>
<tr>
<td><label for="at_mname"><span class="lead at-text">Middle Name</span></label><input type="text" class="form-control" name="at[mname]" id="at_mname" value="" placeholder="Middle Name" style= "width: 300px;"/></td>
<td><label for="at_gender"><span class="lead at-text">Gender</span></label><input type="text" class="form-control" name="at[gender]" id="at_gender" value="" placeholder="Gender" style= "width: 300px;" /></td>
</tr>
<tr>
<td><label for="at_bday"><span class="lead at-text">Birth Date</span></label><input type="date" class="form-control" name="at[bday]" id="at_bday" value="" placeholder="Birth date" style= "width: 300px;"/></td>
<td><label for="at_contact"><span class="lead at-text">Cell Phone Number</span></label><input type="text" class="form-control" name="at[contact]" id="at_contact" value="" placeholder="Cell Number" style= "width: 300px;" /></td>
</tr>
<tr>
<td><label for="at_address"><span class="lead at-text">Address</span></label><input type="text" class="form-control" name="at[address]" id="at_address" value="" placeholder="Address" style= "width: 300px;"/></td>
<td><label for="at_email"><span class="lead at-text">Email Address</span></label><input type="email" class="form-control" name="at[email]" id="at_email" value="" placeholder="Email Address" style= "width: 300px;" /></td>
</tr>
<tr>
<td><label for="at_brgy1"><span class="lead at-text">1st Barangay</span></label>
<?php
//$attr = array('class'=>'form-control','id'=>'at_brgy1');
echo form_dropdown('at[brgy1]',$dropdown_brgy1,'','id="brgy_id_1" class="form-control" style="width:300px"'); ?>
</td>
<td><label for="at_brgy2"><span class="lead at-text">2nd Barangay</span></label>
<?php $dropdown_brgy2 = array('0'=>'Select Barangay');
//$attr = array('class'=>'form-control','id'=>'at_brgy1');
echo form_dropdown('at[brgy2]',$dropdown_brgy2,'','id="brgy_id_2" class="form-control" style="width:300px"'); ?>
</td>
</tr>
<tr>
<td><label for="at_brgy3"><span class="lead at-text">3rd Barangay</span></label>
<?php $dropdown_brgy3 = array('0'=>'Select Barangay');
//$attr = array('class'=>'form-control','id'=>'at_brgy1');
echo form_dropdown('at[brgy3]',$dropdown_brgy3,'','id="brgy_id_3" class="form-control" style="width:300px"'); ?>
</td>
</tr>
</tbody>
</table>
</form>
<table class="table table-bordered">
<tr>
<td><button type="button" class="btn btn-success" id="agri-btn">Save Details</button></td>
</tr>
</table>
使用Javascript:
<script type="text/javascript">
$("#agri-btn").click(function(){
alert($("#agi_tech_form").serialize());
$.post('<?php echo base_url(); ?>admin/save_agri_tech',$("#agri_tech_form").serialize(),function(data){
if(data.notify == "Success"){
console.log(data.notify);
}
},"json");
});
</script>
admin.php的
function save_agri_tech(){
$agri_tech_details = $this->input->post('at');
$query = $this->core_model->save_at_details($agri_tech_details);
if( $query ){
$notification = "Success";
} else{
$notification = "Failed";
}
echo json_encode(array('notify'=>$notification));
}
core_model.php
function save_at_details($agri_tech_details){
$this->db->insert('tbl_agri_technician',$agri_tech_details);
return true;
}
tbl_agri_technician结构
序列化值显示在警告中
错误
答案 0 :(得分:1)
我知道这感觉如何。在处理AJAX时,最好在调试时将此行添加到javascript中
.fail(function(data) {
console.log(data);
}
这将使您的javascript看起来像这样:
<script type="text/javascript">
$("#agri-btn").click(function(){
alert($("#agi_tech_form").serialize());
$.post('<?php echo base_url(); ?>admin/save_agri_tech',$("#agri_tech_form").serialize(),function(data){
if(data.notify == "Success"){
console.log(data.notify);
}
},"json")
.fail(function(data) {
console.log(data);
});
});
</script>
通过这种方式,您可以在控制台出现 500内部服务器错误时看到错误消息。
注意:我正在使用谷歌浏览器,它可以运行。您可能必须打开AJAX请求或其他东西(我忘了它的名字)
答案 1 :(得分:0)
sql不正确。
您可以看到表tbl_agri_technician
中有多个字段。
但是在最后一张照片中你发布了哪个sql insert语句
INSERT INTO tbl_agri_technician
(0
)VALUES('')
这完全不符合表格。 它可能是映射表的错误。 我想你的设置中有一些错误。
最好从core_model.php调试并检查变量“$ agri_tech_details”。
答案 2 :(得分:0)
表单ID错误,缺少'r'。