无法使用ajax将值传递给Codeigniter控制器

时间:2015-12-22 20:09:18

标签: javascript php jquery ajax codeigniter

使用ajax从输入元素向Codeigniter控制器发送值时遇到问题。

由于我必须使用WYSIWYG编辑器(summernote),因此我可以在<script>内接收输入。但是,当我按下提交按钮时,它只是重新加载当前页面而不是控制器中的页面。 这是我的代码:

PHP视图

<section id="mainContent">    
    <form method="post">
        <input type="text" id="textbox" class="editor" name="textbox">
        <input id="submit_btn" type="button" name="sutmit" value="submit" onclick="myFunction()">
    </form>
</section>

<script type="text/javascript">
    function myFunction() {
        var markupStr = $('#textbox').summernote('code');
        alert(markupStr);
        $.ajax({
            type : 'POST',
            url : "<?= site_url().'cintern/save'; ?>",
            async : false,
            data : {'iDes': markupStr},
            success : function(data){
                alert("Success!");
            }
        });
        return false;
    };
</script>

PHP控制器

public function save() 
    {
        $session_data = $this->session->userdata('logged_in');
        $data['id'] = $session_data['idlogin'];
        $data['role'] = $session_data['role'];
        $data['pageTitle'] = 'Success';
        $data['iDes'] = $this->input->post('iDes');
        $this->load->view('templates/header', $data);
        $this->load->view('internship/success', $data);
        $this->load->view('templates/footer');
    }

请帮忙!提前谢谢。

2 个答案:

答案 0 :(得分:0)

您应该使用onsubmit <form>代码。

<section id="mainContent">    
  <form method="post" onsubmit="myFunction()">
    <input type="text" id="textbox" class="editor" name="textbox">
    <input id="submit_btn" type="button" name="sutmit" value="submit">
  </form>
</section>

原因是,如果您处理onclick的{​​{1}},则在提交数据后您无法拦截<input type="submit">代码的请求。

我希望这可以帮到你。

答案 1 :(得分:0)

由于您使用JQuery作为ajax,我建议您使用它来捕获提交。

删除内联的onclick分配。为表单提供id属性。

Library/Application Support/Google/Chrome/Default/Local Extension Settings/<extension id>

<section id="mainContent"> <form method="post" id="target"> <input type="text" id="textbox" class="editor" name="textbox"> <input id="submit_btn" type="button" name="sutmit" value="submit"> </form> </section> 变为&#39;提交&#39;事件处理程序

myfunction()

控制器:

<script type="text/javascript">

$("#target").submit(function (event) {
  var markupStr = $('#textbox').summernote('code');
  //stop the normal submit from happening
  event.preventDefault();
  $.ajax({
    type: 'POST',
    url: "<?= site_url().'cintern/save'; ?>",
    async: false,
    data: {'iDes': markupStr},
    success: function (data) {
      //do stuff with data then redirect to 'after_save' 
      console.log(data.results, data.otherstuff);
      window.location.href = "http://example.com/cintern/after_save";
    }
  });
});

</script>