我已经尝试过在网络上找到解决方案,我找不到任何答案,我按照下面的代码。仍然我的数据不会进入数据库。
这是我的控制器pages.php
<?php
class pages extends CI_Controller {
function view($page = 'index') {
$this->load->view('pages/index');
}
function insert_data(){
$data = array(
'name' => $this->input->post('name'),
'email' => $this->input->post('email'),
'message' => $this->input->post('message')
);
$this->load->model('contact_model');
$this->contact_model->insert_entry($data);
echo json_encode($data);
}
}
?>
这是我的查看页面/ index.php
<form id="submit">
name <input type="text" id="name" >
email<input type="email" id="email">
message<textarea id="message"></textarea>
<button type="button" id="submit1">Send</button>
<a id="ack"></a>
</form>
这是我的模型contact_model.php
<?php
class contact_model extends CI_Model {
function insert_entry($data) {
$this->db->insert('contactus', $data);
}
}
?>
这是我的js文件custom.js
$("#submit1").on('click',function(){
$.ajax({
url: "<?php echo site_url('pages/insert_data');?>",
type: 'POST',
data: {"name": $("#name").val(), "email": $("#email").val(), "message":
$("#message").val()},
success: function(data) {
$("#ack").html(data);
}
});
});
答案 0 :(得分:0)
在codeigniter中,您需要在加载时指定模型中可用的数据库...
$this->load->model('MyModel','',true);
有关详细信息,请参阅documentation。
或者,您可以使用
手动加载并连接到模型中的数据库$this->load->database();
在运行任何查询之前
也是这个
url: "<?php echo site_url('pages/insert_data');?>",
在.js文件中失败。您可以使用javascript并将其放入index.php或在包含.js文件之前定义javascript变量并将该变量用于url即...
//index.php
<script>var sendUrl = "<?php echo site_url('pages/insert_data');?>"</script>
<script src="path/to/js/custom.js"></script>
并将违规行更改为
//custom.js
url: sendUrl,
答案 1 :(得分:0)
确保数据库连接可用,并且用于建立连接的用户具有写入权限。以下代码可能会对您有所帮助。
答案 2 :(得分:0)
在模型文件中尝试这样
<?php
class contact_model extends CI_Model {
* Calls parent constructor
*/
function __construct()
{
parent::__construct();
}
function insert_entry($data) {
$this->db->insert('contactus', $data);
}
}
?>