我的页面中有一个按钮,当我点击此按钮时,它会将我重定向到此链接readMessage/id
。
我希望当我点击它以保持同一页面时,我不希望我的页面被重新加载或其他。
链接readMessage/id
将更新数据库,这是控制器中的一个功能:
function readMessage($id) {
$this->message_module->readMessage($id);
$this->index();
}
此函数将调用readMessage
模块中的message
函数:
function readMessage($id) {
$data = array('is_read' => 1);
$this->db->where('id',(int)$id)
->update($_tbl_msg, $data);
}
这是我的按钮:
<button class="testButton" data-id="<?php echo $message->id; ?>">Test</button>
这是我试过的代码:
$('.testButton').click(function(){
// get jquery object access to the button
var $thisButton = $(this);
var form_data = {
id : $thisButton.data('id')
}
$.ajax({
url:'<?php echo base_url;?>messages/readMessage',
type:'GET',
data: form_data,
success:function(d){
alert(d);
}
});
});
但它不起作用。
如果有人能告诉我该怎么做,我会很感激。
我更改了ajax代码,它工作了我现在可以看到success
attribut中的警告框:
$('.testButton').click(function(){
$.ajax({
url:"<?php echo site_url('messages/readMessage'); ?>",
type:'GET',
data: {id : $(this).data('id')},
success:function(d){
alert(d);
}
});
});
我认为之后的网址为:messages/readMessage?id=myId
,但在CodeIgniter中应该是:messages/readMessage/myId
,这就是它无效的原因。
我通过手动提供id
进行了测试:
url:"<?php echo site_url('messages/readMessage/5'); ?>"
它有效。
现在我需要知道如何使用$(this).data('id')
将该值url
连接起来,因为当我尝试这个时:url:"<?php echo site_url('messages/readMessage/" + $(this).data('id') + "'); ?>"
,它没有用。
答案 0 :(得分:1)
在你的控制器里 尝试回声
function readMessage() {
$id=$this->input->get('id');
$this->message_module->readMessage($id);
$this->index();
echo "something";
}
答案 1 :(得分:1)
根据您最近的修改,请尝试以下网址中的代码
url:"<?php echo site_url('messages/readMessage'); ?>/"+$(this).data('id'),
然后您的readMessage
应接受以下参数
function readMessage($data ="") {