ajax警报使用codeigniter无法正常工作

时间:2017-02-03 11:42:19

标签: ajax codeigniter

我是ajax的新手。我想使用ajax和codeigniter添加两个字段。当我单击提交按钮时,会添加两个字段,但警报消息未显示,页面也不刷新。任何人都可以解决我的问题..提前谢谢..

这是我的表格

<form  action="" id="suggestionsform" method="post">
               <div class="form-group">
                  <label for="suggname">Name</label>
                  <input type="text" class="form-control" name="suggname" id="suggname" placeholder="Enter Your Name" required="required">
               </div>
              <div class="form-group">
                  <label for="suggmessage">Suggestion</label>
                  <textarea class="form-control" rows="4" name="suggmessage" id="suggmessage"
                   placeholder="Enter Your Suggestions"></textarea> 
              </div>
              <button type="submit" class="btn btn-default" id="suggestions">Submit</button>
  </form>

这是我的ajax编码

<script>
// Ajax post
    $(document).ready(function() {
    $("#suggestions").click(function(event) {
    event.preventDefault();
    var name = $("#suggname").val();
    var suggestion = $("#suggmessage").val();
    $.ajax({
    type: "POST",
    url: "<?php echo site_url('Helen/addSuggestion')?>",
    dataType: 'json',
    data: {name: name, suggestion: suggestion},
    success: function(data) {
    if (data=='true')
    {
      alert("Thank you for your Suggestion");
    }
    }
    });
    });
    });
</script>

控制器编码

 public function addSuggestion()
    {
          $data=array(
            'name' => $this->input->post('name'),
            'messages' => $this->input->post('suggestion'),
            'date' => now()
          );
          $data=$this->Helen_model->setSuggestion($data);
          echo json_encode($data);
    }

模型编码

 public function setSuggestion($data){
         $this->db->insert('messages', $data);
         return $this->db->insert_id();
    }   

2 个答案:

答案 0 :(得分:0)

你可以这样做..

<强>模型

如果插入成功则返回true状态。

 public function setSuggestion($data){
            $res =  $this->db->insert('messages', $data);

            if($res){
                 $result = array('status'=>true,'message'=>'successful');
            }
             else
             {
                 $result = array('status'=>false,'message'=>'failed');
             }

             return $result;
        }  

<强> JS

检查success功能

中的状态
<script>
// Ajax post
    $(document).ready(function() {
    $("#suggestions").click(function(event) {
    event.preventDefault();
    var name = $("#suggname").val();
    var suggestion = $("#suggmessage").val();
    $.ajax({
    type: "POST",
    url: "<?php echo site_url('Helen/addSuggestion')?>",
    dataType: 'json',
    data: {name: name, suggestion: suggestion},
    success: function(response) {
    data = eval(response);//or data = JSON.parse(response)
    if (data.status ===true)
    {
      alert("Thank you for your Suggestion");
    }
    }
    });
    });
    });
</script>

答案 1 :(得分:0)

尝试在控制器响应中使用echo '{"status": "success"};

我在你的脚本上看到你会看到数据库响应。