Codeigniter Jquery Ajax,无法将数据从控制器访问回 html 形式
Codeigniter Jquery Ajax, Can't access data from controller back to html form
我正在尝试使用 jquery ajax 处理来自 htmlform 的数据到 codeigniter,但它 return 没有任何值。
这是 jquery 用于处理数据的代码
$(document).ready(function(){
$("#chat_create_room").submit(function(){
var chat_name = $(".chat_name").val();
$("#response").html('<b>Fetching data...</b>');
$.ajax({
type: 'POST',
url: 'site/create_chat_room',
dataType: 'json',
data: {chat_room_name: chat_name},
success: function(data){
$("#response").html(data.chat_room_name);
$("#submit").css("display", "none");
}
});
return false;
});
这是我用来从 Jquery
获取数据的 codeigniter 控制器函数
public function create_chat_room(){
if($this->session->userdata('logged_in')){
$data = array(
'chat_room_name' => $this->input->post('chat_room_name')
);
$chat_room_name = json_encode($data);
$table_exists = $this->users->table_exists($chat_room_name);
if($table_exists){
echo 'Sorry the table you choose already exist!';
}else{
echo "<strong>".$chat_room_name."</strong> has been created!";
}
}else{
$this->load->view('view_site');
}
但是如果我在 codeigniter 控制器函数中尝试这个它工作正常
public function create_chat_room(){
$data = array(
'chat_room_name' => $this->input->post('chat_room_name')
);
$chat_room_name= json_encode($data);
echo $chat_room_name;
}
我想要的主要是,首先处理给定值(这是Json对象)从Jquery到Codeigniter Controller然后检查天气数据库中存在给定值,如果该值存在,我会用任何消息提醒用户
谢谢
我一直在尝试不同的选择,但最终我明白了
,我只需要调整一些东西,比如我不必处理 json 到 codeigniter 控制器,我只需要处理正常数据。
Jquery代码
$("#chat_create_room").submit(function(){
var chat_name = $(".chat_name");
$("#response").html('<img src="img/ugchat_loader.GIF"/>');
$.ajax({
type : 'POST',
url : 'site/create_chat_room',
data : chat_name,
success : function(res){
if(res == ""){
$("#response").html('Nothing returned!');
}else{
$("#response").html(res);
}
}
});
$(".chat_name").val('');
return false;
使用 Codeigniter 控制器抓取所有东西后
public function create_chat_room(){
if($this->session->userdata('logged_in')){
sleep(3);
$chat_room_name = $this->input->post('chat_room_name');
$table_exists = $this->users->table_exists($chat_room_name);
if($table_exists){
echo '<div class="alert alert-danger"><strong>Error</strong> Sorry the chatroom name is already taken!</div>';
}else{
echo '<div class="alert alert-success"><strong>Success</strong> Your chatroom has been created</div>';
}
}else{
redirect(base_url()."site");
}
和模型
基本上这个函数检查我们的数据库中是否包含 table
和 return 对或错;
之后,我们评估结果并在我们的控制器中对其进行测试,然后 return 将数据返回给我们的 html
public function table_exists($table_exists){
$tables = $this->db->table_exists($table_exists);
if($tables){
return true;
}else{
return false;
}
}
希望对你有帮助
nulldev
我正在尝试使用 jquery ajax 处理来自 htmlform 的数据到 codeigniter,但它 return 没有任何值。
这是 jquery 用于处理数据的代码
$(document).ready(function(){
$("#chat_create_room").submit(function(){
var chat_name = $(".chat_name").val();
$("#response").html('<b>Fetching data...</b>');
$.ajax({
type: 'POST',
url: 'site/create_chat_room',
dataType: 'json',
data: {chat_room_name: chat_name},
success: function(data){
$("#response").html(data.chat_room_name);
$("#submit").css("display", "none");
}
});
return false;
});
这是我用来从 Jquery
获取数据的 codeigniter 控制器函数public function create_chat_room(){
if($this->session->userdata('logged_in')){
$data = array(
'chat_room_name' => $this->input->post('chat_room_name')
);
$chat_room_name = json_encode($data);
$table_exists = $this->users->table_exists($chat_room_name);
if($table_exists){
echo 'Sorry the table you choose already exist!';
}else{
echo "<strong>".$chat_room_name."</strong> has been created!";
}
}else{
$this->load->view('view_site');
}
但是如果我在 codeigniter 控制器函数中尝试这个它工作正常
public function create_chat_room(){
$data = array(
'chat_room_name' => $this->input->post('chat_room_name')
);
$chat_room_name= json_encode($data);
echo $chat_room_name;
}
我想要的主要是,首先处理给定值(这是Json对象)从Jquery到Codeigniter Controller然后检查天气数据库中存在给定值,如果该值存在,我会用任何消息提醒用户
谢谢
我一直在尝试不同的选择,但最终我明白了 ,我只需要调整一些东西,比如我不必处理 json 到 codeigniter 控制器,我只需要处理正常数据。
Jquery代码
$("#chat_create_room").submit(function(){
var chat_name = $(".chat_name");
$("#response").html('<img src="img/ugchat_loader.GIF"/>');
$.ajax({
type : 'POST',
url : 'site/create_chat_room',
data : chat_name,
success : function(res){
if(res == ""){
$("#response").html('Nothing returned!');
}else{
$("#response").html(res);
}
}
});
$(".chat_name").val('');
return false;
使用 Codeigniter 控制器抓取所有东西后
public function create_chat_room(){
if($this->session->userdata('logged_in')){
sleep(3);
$chat_room_name = $this->input->post('chat_room_name');
$table_exists = $this->users->table_exists($chat_room_name);
if($table_exists){
echo '<div class="alert alert-danger"><strong>Error</strong> Sorry the chatroom name is already taken!</div>';
}else{
echo '<div class="alert alert-success"><strong>Success</strong> Your chatroom has been created</div>';
}
}else{
redirect(base_url()."site");
}
和模型
基本上这个函数检查我们的数据库中是否包含 table
和 return 对或错;
之后,我们评估结果并在我们的控制器中对其进行测试,然后 return 将数据返回给我们的 html
public function table_exists($table_exists){
$tables = $this->db->table_exists($table_exists);
if($tables){
return true;
}else{
return false;
}
}
希望对你有帮助
nulldev