2014-01-15 7 views
0

У меня есть кнопка на моей странице, когда я нажимаю на эту кнопку, она перенаправляет меня на эту ссылку readMessage/id.Функция Ajax не работает в CodeIgniter

Я хочу, когда я нажму на него, чтобы остаться на той же странице, я не хочу, чтобы моя страница была перезагружена или что-то еще.

Ссылка readMessage/id будет обновлять базу данных, которая является функцией в контроллере:

function readMessage($id) { 
      $this->message_module->readMessage($id); 
      $this->index(); 
     } 

Эта функция будет вызывать функцию readMessage в message модулы:

Это моя кнопка :

<button class="testButton" data-id="<?php echo $message->id; ?>">Test</button> 

An d это код, который я пробовал:

$('.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); 
        } 
       }); 

      }); 

Но это не работает.

Если кто-то может показать мне, как это сделать, я буду благодарен.

Edit 1:

Я изменил код 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); 
        } 
       }); 

      }); 

Я думаю, что URL после того, как это будет: 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

проверить на панели консоли консоли Chrome.any ошибки? – Arunu

+0

Нет, ошибки нет. –

+0

@Arunu, пожалуйста, проверьте изменение, которое я сделал. –

ответ

1

согласно вашему недавнему редактирования, попробуйте ниже код в URL-адрес раздела

url:"<?php echo site_url('messages/readMessage'); ?>/"+$(this).data('id'), 

Тогда ваш readMessage должен принимать параметр, как показано ниже

function readMessage($data ="") { 
1

В вас контроллер попытку, вторя

function readMessage() { 
    $id=$this->input->get('id'); 
     $this->message_module->readMessage($id); 
     $this->index(); 
    echo "something"; 
    } 
+0

Это ничего не говорит. –

+0

Я только что отредактировал свой ответ, пожалуйста, проверьте –

Смежные вопросы