【发布时间】:2021-09-13 18:03:49
【问题描述】:
当我从视图进行 AJAX 调用并将表单数据传递给控制器时。我有几个问题。首先,success 中的代码永远不会执行,其次,即使是 AJAX 调用,也会刷新页面。谁能告诉我我哪里做错了?
从昨天开始,我看到了很多问题,但没有一个能够解决我的问题。
型号代码
public function insert_user($name, $email) {
$data = array();
$data['name'] = $name;
$data['email'] = $email;
$data['created_at'] = date('y-m-d');
$this->db->insert('all_users', $data);
return true;
}
控制器代码
public function insert_user () {
$data = $this->input->post();
$name = $data['name'];
$email = $data['email'];
$this->User_model->insert_user($name, $email);
$this->load->view('view');
}
Ajax 请求代码
const insertBtn = $(".insert-btn");
insertBtn.on("click", function () {
const name = $(".insert-form input[type=name]");
const email = $(".insert-form input[type=email]");
$.ajax({
url: "<?php echo base_url() ?>index.php/Users/insert_user",
type: "post",
data: {name, email},
dataType: "json",
success: function () {
$("body").append("Request made successfully");
}
})
});
我的表单看起来像这样:
<form class="insert-form" action="<?php echo base_url() ?>index.php/Users/insert_user" method="post">
<input type="text" name="name" placeholder="Enter name">
<input type="email" name="email" placeholder="Enter email">
<button class="insert-btn">Insert Data</button>
</form>
注意:我能够成功地将数据插入数据库。
【问题讨论】:
-
您的
$this->load->view('view');视图文件中有什么内容?是 JSON 数据吗?你的dataType: "json",告诉 jQuery 它是。尝试删除dataType: "json",看看是否可以解决问题。 -
view 包含从表单获取输入值的 ajax 代码。我正在准确地获取数据
-
去掉
dataType: "json",行还能用吗? -
您是如何提交表单的,您是点击按钮还是回车?
-
不,那样不行。此外,我在 jQuery 中获取数据时犯了一个错误,但即使这样也不能解决问题。我正在单击按钮提交表单。
标签: ajax codeigniter