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));
}