Php 单击聊天按钮时移动用户以使用AJAX聊天页面|重要
在我的网站上,每个用户配置文件中都有“消息”按钮 ,因此,当任何用户单击“消息”按钮时,都应该使用ajax将其移动到“消息”页面 1-我不知道如何使用ajax将用户id表单配置文件页面移动到消息页面Php 单击聊天按钮时移动用户以使用AJAX聊天页面|重要,php,ajax,Php,Ajax,在我的网站上,每个用户配置文件中都有“消息”按钮 ,因此,当任何用户单击“消息”按钮时,都应该使用ajax将其移动到“消息”页面 1-我不知道如何使用ajax将用户id表单配置文件页面移动到消息页面 如果这不是该用户第一次使用,则应使用台钳打开 页码 形象 PROIFLE用户中的BUTON信息 聊天页面 配置文件页面中的代码消息按钮 $(“#开始消息”)。单击(函数() { var user_id=$(“#user_id”).val(); 警报(用户标识); $.ajax ({ 类型:“POS
$(“#开始消息”)。单击(函数()
{
var user_id=$(“#user_id”).val();
警报(用户标识);
$.ajax
({
类型:“POST”,
url:“”,
数据:{'user\u id':user\u id},
数据类型:'html',
成功:功能(数据)
{
window.location.href=“”;
$(“#加载消息”).html(数据);
}
});
});
代码这是完整的消息控制器页面,当输入代码时
以用户ID为例
public function index()//已使用
{
$user\u id=$this->session->userdata('doctor')[0]->user\u id;//我的id通过我的id获取我的用户列表
$data[“lists”]=$this->Message\u model->getMyUserList($user\u id);
$this->load->view('front/Message_view',$data);
}
/*
显示或获取消息列表
*/
公共函数getMessage()//已使用
{
$touser=$this->input->post('touser');//通过touser Id获取我的用户列表
$data['messages']=$this->Message\u model->getMessage($touser);
foreach($data['messages']作为$message)
{
如果($message->tuser==$tuser)
{
回声'
“.$message->message”
“.$message->date\u msg”
';
}
否则{
回声'
“.$message->message”
“.$message->date\u msg”
';
}
}
}
/*
发送新消息
*/
函数sendMessage()//已使用
{
$message=$this->input->post('msg');//此数据来自Ajax
$touser=$this->input->post('touser');
//回声$message,$tuser;死亡;
//$reservation\u id=$this->input->post('reservation\u id');
$data=数组
(
'message'=>$message,
“日期”=>日期(“Y-m-d H:i:s”),
“touser”=>$touser,
//“预订\u id”=>$reservation\u id,
“状态”=>“非”,
“聊天室交易”=>“非”,
“fromuser'=>this->session->userdata('doctor')[0]->user\u id
);
$insert=$this->Message\u model->sendMessage($data);
如果($插入){
回声1;
}否则{
回声0;
}
}
通过Ajax查看页面的代码消息
您可以向controller提交用户详细信息,而不是创建AJAX请求。正在加载视图的位置
$("#startMessage").click(function(){
var user_id = $("#user_id").val();
/*
* AJAX request won't work here, because you had sent user_id data to controller "Message/index" using AJAX,
* then in it's success method you are again redirecting to page controller "Message/index", here user_id details are not present
* Instead will just create a form and submit that form to controller "Message/index", so that variable user_id will available in "Message/index"
* Once form submitted to controller Message/index, view "front/Message_View" was already getting loaded their as per existing code
*/
var formHTML = '<form name="frmUserData" action="<?php echo base_url('Message/index')?>" method="post">'+
'<input type="hidden" name="user_id" value="'+ user_id +'">'+
'</form>';
var formObj = $('.main-footer').append(formHTML).find("[name='frmUserData']");
$(formObj).submit();
});
$(“#开始消息”)。单击(函数(){
var user_id=$(“#user_id”).val();
/*
*AJAX请求在这里不起作用,因为您已经使用AJAX向控制器“消息/索引”发送了用户id数据,
*然后在它的成功方法中,您再次重定向到页面控制器“Message/index”,这里不存在用户id详细信息
*而是创建一个表单并将该表单提交给控制器“Message/index”,这样变量user\u id将在“Message/index”中可用
*一旦表单提交到控制器消息/索引,视图“front/Message_view”已经按照现有代码加载
*/
var formHTML=''但它不起作用,我无法使用ajax将用户id从配置文件页面移动到消息页面。'-没有真正的帮助。您咨询过控制台吗?它显示了任何错误吗?ajax响应有效吗?有人能帮我吗?元素$(“#用户id”)中的值是多少或者它的值是如何在页面中更新的。如果可能的话,你能提供一个链接来检查是否正常工作,或者为相同的内容创建一个提琴吗?我编辑我的Q,我放置图像是为了让你更好地理解而不是工作,你看到我的完整代码了吗???从你得到主页脚的地方,我没有这个oops,用$('body'替换$('main footer'))没有别的,因为我在我的网页上尝试了该代码,其中有“.main footer”。不便之处表示遗憾。当我打开用户X配置文件并单击“消息”时按钮,按钮指向消息页面,但不打开此X用户消息页面您是否有任何演示链接,以查看其工作原理?以便我能正确地提供帮助。我正在尝试进行搜索,以了解代码是否获得用户id,处于警报状态,但似乎没有“未定义”
public function index() //used
{
$user_id =$this->session->userdata('doctor')[0]->user_id;// My Id To Get My User List By My Id
$data["lists"] = $this->Message_model->getMyUserList($user_id);
$this->load->view('front/Message_View',$data);
}
/*
Show Or Get Messge List
*/
public function getMessage() //used
{
$touser = $this->input->post('touser'); // touser Id To Get My User List By touser Id
$data['messages'] = $this->Message_model->getMessage($touser);
foreach($data['messages'] as $message)
{
if ($message->touser == $touser)
{
echo '
<div class="chat-message self">
<div class="chat-message-content-w">
<div class="chat-message-content">'.$message->message.'</div>
</div>
<div class="chat-message-date">'.$message->date_msg.'</div>
<div class="chat-message-avatar"><img alt="" src="https://www.bodywork.sa.com/mohammed/img/face-7.jpg"></div>
</div>
';
}
else {
echo '
<div class="chat-message">
<div class="chat-message-content-w">
<div class="chat-message-content">'.$message->message.'</div>
</div>
<div class="chat-message-avatar"><img alt="" src="https://www.bodywork.sa.com/mohammed/img/face-7.jpg"></div>
<div class="chat-message-date">'.$message->date_msg.'</div>
</div>
';
}
}
}
/*
Send New Messeg
*/
function sendMessage() //used
{
$message = $this->input->post('msg'); // This Data Take From Ajax
$touser = $this->input->post('touser');
// echo $message ,$touser ; die;
// $reservation_id = $this->input->post('reservation_id');
$data= array
(
'message'=>$message,
'date_msg'=>date("Y-m-d H:i:s"),
'touser'=>$touser,
// 'reservation_id'=>$reservation_id,
'status'=>"non",
'chatdeals'=>"non",
'fromuser'=>$this->session->userdata('doctor')[0]->user_id
);
$insert = $this->Message_model->sendMessage($data);
if($insert){
echo 1;
}else{
echo 0;
}
}
<div class="chat-search">
<!-- serach -->
<div class="element-search"><input placeholder="Search users by name..." type="text"></div>
</div>
<!------------------------- Left Side Start ------------------->
<!-----------------------List user
--------------------------------------------------->
<div class="user-list">
<?php foreach($lists as $list ){ ?>
<div data-touserid="<?php echo $list->user_id ?>" id="<?php echo $list->name ?>" class="user-w">
<!---------------- Evry Thing form This Id IMPORTANT----------------->
<div class="avatar with-status status-green">
<img alt="" src="https://www.bodywork.sa.com/mohammed/img/face-7.jpg"></div>
<div class="user-info">
<div class="user-date">2 days</div>
<div class="user-name"><?php echo $list->name ?></div>
<div class="last-message">They have submitted users...</div>
</div>
</div>
<?php } ?>
</div>
</div>
<!------------------------- Left Side End ------------------->
<div class="full-chat-middle"> <!-- beside the to ueser name put the touer id -->
<div class="chat-head">
</div>
<div class="chat-content-w ps ps--theme_default" data-ps-id="e9e4b066-577f-fc03-9e0c-3979505e77eb">
<div id="loadMessages" class="chat-content">
<!-------------------------------
the design in the controller
/--------------------------------->
</div>
<div class="ps__scrollbar-x-rail" style="left: 0px; bottom: 0px;">
<div class="ps__scrollbar-x" tabindex="0" style="left: 0px; width: 0px;"></div>
</div>
<div class="ps__scrollbar-y-rail" style="top: 0px; right: 0px;">
<div class="ps__scrollbar-y" tabindex="0" style="top: 0px; height: 0px;"></div>
</div>
</div>
<div class="chat-controls">
<div class="chat-input">
<!-------------------------------
messge content value
/--------------------------------->
<input id="message_text" name="message_text" placeholder="Type your message here..." type="text"></div>
<!-------------------------------
add messge script
/--------------------------------->
<div class="chat-btn">
<!-- <a id="sendMessage" class="btn btn-primary btn-sm btn-fill" >Send2</a> -->
</div>
</div>
</div>
<script>
/*
* Make First Message in page is the first
*
*/
$(document).ready(function(){
$(".user-w:first").trigger("click");
});
/*
* Show User List
*
*/
$(".user-w").click(function()
{
var touser =$(this).data('touserid');
//$(this).attr("touserid"); // touser Id To Get My User List By touser Id
var touserName = $(this).attr("id"); // touser Id To Get My User List By touser Id
alert(touser);
alert(touserName);
$.ajax
({
type:"POST",
url:"<?php echo base_url('Message/getMessage/')?>",
data:{'touser' : touser},
datatype:'html',
success:function(data)
{
$("#loadMessages").html(data); // refrech the chat to get the news by ajax real time
//alert ("yub");
var button = '<button type="button" onclick="sendMessage('+touser+')" class="btn btn-info send_chat">Send</button>';
$(".chat-btn").html(button); // button to send messge touser by ajax with the touser id
var Head = ' <div id="user-info" class="user-info" "><span>To:</span><a href="<?php echo base_url('Profile/getUserById/')?>'+touser+'">'+touserName+'</a></div>';
$(".chat-head").html(Head);
}
});
});
/*
* Send New Messeg
*
*/
function sendMessage(touser)
{
//alert("test");
//alert(user_id);
var msg = $("#message_text").val();
var touser = touser;
// alert(touser);
//alert(msg);
//var reservation_id = $("#reservation_id").val();
if(!msg || msg.length == 0)
{
alert("enter a message");
}
else
{
$.ajax
({
type:"POST",
url:"<?php echo base_url('Message/sendMessage')?>",
// data:{'msg' : msg, 'touser' : touser, 'reservation_id' :
reservation_id},
data:{'msg' : msg, 'touser' : touser},
datatype:'text',
// Page.Server.ScriptTimeout = 300;
success:function(data)
{
if(data == 1)
{
//$("#loadMessages").load();
$("#message_text").val("");
$(".user-w[id='"+ touser +"']").trigger("click");
}
else
{
alert("noo eroor chat message") ;
}
},
});
//return false;
}
} // End Send Message Function
</script>
$("#startMessage").click(function(){
var user_id = $("#user_id").val();
/*
* AJAX request won't work here, because you had sent user_id data to controller "Message/index" using AJAX,
* then in it's success method you are again redirecting to page controller "Message/index", here user_id details are not present
* Instead will just create a form and submit that form to controller "Message/index", so that variable user_id will available in "Message/index"
* Once form submitted to controller Message/index, view "front/Message_View" was already getting loaded their as per existing code
*/
var formHTML = '<form name="frmUserData" action="<?php echo base_url('Message/index')?>" method="post">'+
'<input type="hidden" name="user_id" value="'+ user_id +'">'+
'</form>';
var formObj = $('.main-footer').append(formHTML).find("[name='frmUserData']");
$(formObj).submit();
});