好日子,我不知道如何在Codeigniter上进行ajax调用
有没有人可以告诉我这里怎么做?这对我的编程生涯有很大的帮助。我正在观看教程,但这不是我需要的方式。
所以这是一个过程,一旦我在数据库上提交数据,整个页面就不能加载并更新我在视图上的记录。我尽我所能,但我想我现在真的需要你的帮助。谢谢你。
我的剧本
<script>
$(document).ready(function(){
$("#send").click(function()
{
$.ajax({
type: "POST",
url: <?php echo base_url()?> + "messages/send_message",
data: {textbox: $("#textbox").val(),owner: $("#owner").val()},
dataType: "text",
cache:false,
success:
function(data){
alert(data); //as a debugging message.
}
});// you have missed this bracket
return false;
});
});
</script>
我的控制器
function send_message()
{
$sk = random_string('alnum',5).time();
$from= $_SESSION['username1'];
$owner = $_POST['owner'];
$desc = $_POST['textbox'];
$to = $this->Model_items->get_owner_name($owner);
$from = $this->Model_items->get_owner_name2($username);
date_default_timezone_set('Asia/Manila');
$date = date("Y-m-d H:i:s");
$data = array('message_from_username'=>$username,'message_to_username'=>$owner,'message_sk'=>$sk,'message_desc'=>$desc,'message_from'=>$from,'message_to'=>$to,'message_date'=>$date,'status'=>1);
$this->Model_messages->message_owner($data);
}
我的模特
function message_owner($data)
{
$this->db->insert('messages',$data);
}
function view_convo($from,$username)
{
$query = $this->db->query("Select * from messages where
(message_from_username = '$username' AND message_to_username = '$from') OR
(message_from_username = '$from' AND message_to_username = '$username')
order by message_id desc");
return $query->result();
}
我的观点
<div class="col-md-9 ui segment pre-scrollable" style="min-height:100px;">
<h3 class="ui dividing header">Conversation with <?php echo $convo_with?>
</h3>
<div class="ui comments">
<?php
foreach($convo as $key)
{
?>
<div class="comment">
<a class="avatar">
<img src="<?php echo base_url()?>img/default-avatar.png" style="width:30px;height:25px;border-radius:50%;">
</a>
<div class="content">
<a class="author"><?php echo $key->message_from?></a>
<div class="metadata">
<span class="date">
<?php
date_default_timezone_set('Asia/Manila');
$now = strtotime(date("Y-m-d H:i:s"));
$date = strtotime($key->message_date);
$dateDiff = abs($now - $date);
$fullDays = floor($dateDiff/(60*60*24));
if($fullDays==0)
{
echo " Today ";
}
else if($fullDays==1)
{
echo " Yesterday ";
}
else
{
echo $fullDays ." days ago";
}
$at=date('g:iA',$date)
?> at <?php echo $at?>
</span>
</div>
<div class="text">
<?php echo $key->message_desc?>
</div>
</div>
</div>
<?php
}
?>
<br>
</div>
<form method="post">
<input id="owner" type="hidden" value="<?php echo $this->uri->segment(3);?>" name="owner">
<input id="textbox" type="text" name="textbox">
<input id="send" type="submit" name="send" value="Send">
</form>
</div>
答案 0 :(得分:0)
您需要向ajax调用发回一些内容 更新你的控制器函数以返回一个带有更新消息列表的json,从json你在成功函数中使用json来更新消息列表
function send_message()
{
$sk = random_string('alnum',5).time();
$from= $_SESSION['username1'];
$owner = $_POST['owner'];
$desc = $_POST['textbox'];
$to = $this->Model_items->get_owner_name($owner);
$from = $this->Model_items->get_owner_name2($username);
date_default_timezone_set('Asia/Manila');
$date = date("Y-m-d H:i:s");
$data = array('message_from_username'=>$username,'message_to_username'=>$owner,'message_sk'=>$sk,'message_desc'=>$desc,'message_from'=>$from,'message_to'=>$to,'message_date'=>$date,'status'=>1);
$this->Model_messages->message_owner($data);
$datareturned = $this->Model_messages->view_convo($from,$to);
return json_encode(array('message'=>'Database Updated successfully','data'=>$datareturned));
}
JS:
$(document).ready(function(){
$("#send").click(function()
{
$.ajax({
type: "POST",
url: <?php echo base_url()?> + "messages/send_message",
data: {textbox: $("#textbox").val(),owner: $("#owner").val()},
dataType: "text",
cache:false,
success:
function(data){
alert(data.message); //as a debugging message.
//here you update the message list with the data from "data.data"
//using a loop and append
}
});// you have missed this bracket
return false;
});
});
答案 1 :(得分:0)
控制器:
function send_message()
{
$sk = random_string('alnum',5).time();
$from= $_SESSION['username1'];
$owner = $_POST['owner'];
$desc = $_POST['textbox'];
$to = $this->Model_items->get_owner_name($owner);
$from = $this->Model_items->get_owner_name2($username);
date_default_timezone_set('Asia/Manila');
$date = date("Y-m-d H:i:s");
$data = array('message_from_username'=>$username,'message_to_username'=>$owner,'message_sk'=>$sk,'message_desc'=>$desc,'message_from'=>$from,'message_to'=>$to,'message_date'=>$date,'status'=>1);
$value = $this->Model_messages->message_owner($data);
Print_r($value);
die();
}
使用控制器中的功能