使用$ .post将数据保存到数据库中会返回内部服务器错误

时间:2013-12-06 03:01:41

标签: javascript php codeigniter .post

我已经多次这样做了,我确信我的代码与使用$ .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结构

enter image description here

序列化值显示在警告enter image description here

错误

enter image description here

enter image description here

3 个答案:

答案 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_technician0)VALUES('')

这完全不符合表格。 它可能是映射表的错误。 我想你的设置中有一些错误。

最好从core_model.php调试并检查变量“$ agri_tech_details”。

答案 2 :(得分:0)

表单ID错误,缺少'r'。