Php 使用AJAX和带有Codeigniter的jquery将表单数据传递给控制器

Php 使用AJAX和带有Codeigniter的jquery将表单数据传递给控制器,php,jquery,ajax,database,codeigniter,Php,Jquery,Ajax,Database,Codeigniter,我正在尝试将此表单中的数据发布到数据库中。我尝试了一些教程,但没有成功。这是我的密码。有什么想法吗 视图: 模型 看起来您忘记使用了$。就绪。实际上,javascript在页面加载之前运行,这意味着它无法从$(“#submitbutton”)中找到页面元素。试试这个: $(document).ready(function() { $("#submitbutton").click(function(){ .... .... }); 正如@davidknipe已经说过的,您

我正在尝试将此表单中的数据发布到数据库中。我尝试了一些教程,但没有成功。这是我的密码。有什么想法吗

视图:

模型


看起来您忘记使用了
$。就绪
。实际上,javascript在页面加载之前运行,这意味着它无法从
$(“#submitbutton”)
中找到页面元素。试试这个:

$(document).ready(function() {
    $("#submitbutton").click(function(){
    ....
    ....
});

正如@davidknipe已经说过的,您应该等待DOM准备就绪,然后再尝试访问其中一个元素。此外,您可能有一个
e
is undefined错误,因为您没有将事件引用传递给click处理程序:

<script>   //no need to specify the language
 $(function(){
  $("#submitbutton").click(function(e){  // passing down the event 

    $.ajax({
       url:'http://localhost:8888/index.php/trial/insert_into_db',
       type: 'POST',
       data: $("#myForm1").serialize(),
       success: function(){
           alert("success");
           $('#email').val('');
           $('#qText').val('');
       },
       error: function(){
           alert("Fail")
       }
   });
   e.preventDefault(); // could also use: return false;
 });
});
</script>

^ 
我在猜测列名,因为您没有指定列名

您能提供有关单击按钮时发生的情况的更多信息吗?是否检查是否触发了AJAX事件?还要检查HHTP事件以查看是否发布了Ajax帖子。如何检查HHTP事件?如果使用Firefox,则可以使用web控制台工具,从工具>web开发人员>web控制台。或者下载“livehttpheaders”加载项来观察HTTP事务的进行。还有其他几种工具,但这些都是简单的。我对任何工具都没有偏见。你使用的是哪种浏览器?我使用的是Chrome@david Knipeis不是
$(文档)。ready(函数(){})
或者只是
$(函数(){})
?我已经添加了$(文档)。ready(函数(){code),它仍然在给我错误函数响应@damienpirsy@DavidKnipe我尝试使用$.ready(function(){我没有收到来自AJAX的响应。@Damien你说得对,这两个都可以。我已经更改了我的答案。user2796352,Damien的答案是相同的,但更清楚:-)@user2796352您可能在某个地方有其他错误,您的警报对调试没有帮助。非常感谢@Damien Pirsy。我实现了此代码,它工作正常。还有一件事:您知道如何在提交后清除字段吗?现在我单击“提交”,数据正确发送到数据库,但页面不会更改,也不会更改他输入的字段中仍然有文本。感谢您提供的任何额外信息:)为什么您在开始时删除了
$(function(){
行?@DavidKnipe Ops,我在
之后添加了注释,并意外删除了它,谢谢!@user2796352您可以将它们的值设置回
'
,请参阅更新的答案。
  function insert_into_db(){
    $this->load->model('insert_db');
    $this->insert_db->insertQ();  
}
 class Insert_db extends CI_Model{

    function insertQ(){
        $email = $_POST['email'];
        $qText = $_POST['qText'];
        $this->db->query("INSERT INTO questions VALUES('','$email','$qText','','')");
    }
 }
$(document).ready(function() {
    $("#submitbutton").click(function(){
    ....
    ....
});
<script>   //no need to specify the language
 $(function(){
  $("#submitbutton").click(function(e){  // passing down the event 

    $.ajax({
       url:'http://localhost:8888/index.php/trial/insert_into_db',
       type: 'POST',
       data: $("#myForm1").serialize(),
       success: function(){
           alert("success");
           $('#email').val('');
           $('#qText').val('');
       },
       error: function(){
           alert("Fail")
       }
   });
   e.preventDefault(); // could also use: return false;
 });
});
</script>
function insertQ(){
    $email = $this->input->post('email');
    $qText = $this->input->post('qText');
    $this->db->insert('questions', array('email' =>$email, 'text' => $text));
}