在 codeigniter 中使用 ajax 打印获取的数据
Print fetched data with ajax in codeigniter
我正在尝试与 ajax 建立聊天室。到目前为止,我可以在没有页面加载的情况下将数据存储在数据库中。并且还能够使用 ajax 获取数据并在屏幕上显示。这是我对 ajax
所做的
$('#chat').submit(function(){
var chatmsg = $("#chatmsg").val(); //chat message from input field
var chatroomid = $("#chatroomid").val(); //hidden input field
$.ajax({
url: baseurl+'User_dash/chatmessage', //An function in ctroller which contains only insert query
type: 'post',
data: {chatmsg:chatmsg, chatroomid:chatroomid},
dataType: 'json',
success: function (argument) {
if(argument['status']){
$("#chatting").append(" <li id='"+getvalue+"'>"+argument['msg']+"</li>."); //Here I am printing chat message which resently submitted in database
}
}
},
error: function (hrx, ajaxOption, errorThrow) {
console.log(ajaxOption);
console.log(errorThrow)
}
});
return false;
});
此方法与 ajax 一起工作正常。但是我在这里遇到的问题是,这只向当前用户显示聊天消息。不发送给正在通过聊天发送消息的用户的另一方。
为了解决这个问题,我想出了一个主意,但似乎并没有按我的计划行事。这是我修改以前的 ajax 代码的方式..
$('#chat').submit(function(){
var chatmsg = $("#chatmsg").val();
$.ajax({
url: baseurl+'User_dash/chat', //controller function which contains insert query, after that select query to fetch chat data from db and store in view
type: 'post',
data: {chatmsg:chatmsg},
dataType: 'json',
success: function (argument) {
if(argument['status']){
//Not doing anything here this time
}
},
error: function (hrx, ajaxOption, errorThrow) {
console.log(ajaxOption);
console.log(errorThrow)
}
});
return false;
});
在脚本的更新版本中,我想如果我将调用一个在视图(聊天页面)中存储数据的控制器函数,那么它将 运行 在没有页面加载的情况下查询和打印数据。
但是使用这种方法,我只能在页面加载后才能在屏幕上聊天,尽管它可以在数据库中以 ajax 正常提交。
这是我第二种方法的控制器代码,如果需要的话 ajax
public function chat(){
if(!empty($_POST['chatmsg'])){
$chatdata = array('CHAT_ROOM'=>$_POST['chatroomid'],
'VENDOR'=>$this->session->userdata('USER_ID'),
'BUYER'=>49,
'MESSAGE'=>$_POST['chatmsg']
);
$this->db->insert('tbl_chat', $chatdata); //inserting data
}
$data['chatroom'] = $this->db->where('CHAT_ROOM', 1)->get('tbl_chat')->result_array(); //fetching data from db
$this->load->view('userDash/chat', $data);
}
如何在不加载页面的情况下 运行 插入然后 select 在屏幕上查询和打印数据?
我哪里错了?
我之前解决了我的问题,我所做的是,只是添加了这个 jquery 脚本,它不断刷新(每秒)某个 div 内部页面,我在其中查询以获取聊天来自数据库并打印它们。
setInterval(function(){
$("#chatting").load(location.href + " #chatting");
}, 1000);
我正在尝试与 ajax 建立聊天室。到目前为止,我可以在没有页面加载的情况下将数据存储在数据库中。并且还能够使用 ajax 获取数据并在屏幕上显示。这是我对 ajax
所做的$('#chat').submit(function(){
var chatmsg = $("#chatmsg").val(); //chat message from input field
var chatroomid = $("#chatroomid").val(); //hidden input field
$.ajax({
url: baseurl+'User_dash/chatmessage', //An function in ctroller which contains only insert query
type: 'post',
data: {chatmsg:chatmsg, chatroomid:chatroomid},
dataType: 'json',
success: function (argument) {
if(argument['status']){
$("#chatting").append(" <li id='"+getvalue+"'>"+argument['msg']+"</li>."); //Here I am printing chat message which resently submitted in database
}
}
},
error: function (hrx, ajaxOption, errorThrow) {
console.log(ajaxOption);
console.log(errorThrow)
}
});
return false;
});
此方法与 ajax 一起工作正常。但是我在这里遇到的问题是,这只向当前用户显示聊天消息。不发送给正在通过聊天发送消息的用户的另一方。
为了解决这个问题,我想出了一个主意,但似乎并没有按我的计划行事。这是我修改以前的 ajax 代码的方式..
$('#chat').submit(function(){
var chatmsg = $("#chatmsg").val();
$.ajax({
url: baseurl+'User_dash/chat', //controller function which contains insert query, after that select query to fetch chat data from db and store in view
type: 'post',
data: {chatmsg:chatmsg},
dataType: 'json',
success: function (argument) {
if(argument['status']){
//Not doing anything here this time
}
},
error: function (hrx, ajaxOption, errorThrow) {
console.log(ajaxOption);
console.log(errorThrow)
}
});
return false;
});
在脚本的更新版本中,我想如果我将调用一个在视图(聊天页面)中存储数据的控制器函数,那么它将 运行 在没有页面加载的情况下查询和打印数据。
但是使用这种方法,我只能在页面加载后才能在屏幕上聊天,尽管它可以在数据库中以 ajax 正常提交。
这是我第二种方法的控制器代码,如果需要的话 ajax
public function chat(){
if(!empty($_POST['chatmsg'])){
$chatdata = array('CHAT_ROOM'=>$_POST['chatroomid'],
'VENDOR'=>$this->session->userdata('USER_ID'),
'BUYER'=>49,
'MESSAGE'=>$_POST['chatmsg']
);
$this->db->insert('tbl_chat', $chatdata); //inserting data
}
$data['chatroom'] = $this->db->where('CHAT_ROOM', 1)->get('tbl_chat')->result_array(); //fetching data from db
$this->load->view('userDash/chat', $data);
}
如何在不加载页面的情况下 运行 插入然后 select 在屏幕上查询和打印数据?
我哪里错了?
我之前解决了我的问题,我所做的是,只是添加了这个 jquery 脚本,它不断刷新(每秒)某个 div 内部页面,我在其中查询以获取聊天来自数据库并打印它们。
setInterval(function(){
$("#chatting").load(location.href + " #chatting");
}, 1000);