am试图使用jquery ajax对codeigniter处理htmlform中的数据,但它没有返回任何值。
这是我用来处理数据的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获取数据的代码点火器控制器功能
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');
}
但如果我在代码点火器控制器功能中尝试这个,它可以很好地工作
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;
}
我想做的主要事情是,首先处理Jquery到Codeigniter控制器的给定值(是Json对象),然后检查数据库中是否存在给定值,如果存在该值,我会用任何消息警告用户
感谢
我一直在尝试不同的选项,但最终我得到了它,我只需要调整一些事情,比如我不需要将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");
}
和模型
基本上,这个函数检查的是表是否包含在我们的数据库中并返回true或false
然后,我们评估我们的结果,并在控制器中进行测试,然后将数据返回到我们的html
public function table_exists($table_exists){
$tables = $this->db->table_exists($table_exists);
if($tables){
return true;
}else{
return false;
}
}
我希望它能有所帮助
nulldev