Вызов контроллера внутри функции JavaScript

0

У меня есть контроллер: сообщения метод в этом контроллере: favourite_checked() переменная, которая хранит messages_id из моей таблицы сообщений в моей базе данных

Этот URL-адрес создается

mysite.com/messages/favourite_checked/1 mysite.com/controller/method/message_id

Когда этот URL-адрес успешно вызван, он подключается к моей модели и обновляет столбец в моей таблице сообщений, называемой "любимый". 0 в этом столбце обновляется до 1.

0 = снятый флажок (не избранное сообщения в почтовом ящике) - вычеркнутый снимок 1 = проверено в боксе (пользователь выбрал конкретное сообщение как избранное) - Цветное изображение

В любом случае, мне нужно, чтобы этот URL был загружен в мою (ischecked) функцию в моем javascript. Проблема в том, что ему также необходимо загрузить правильную message_id на определенную строку, на которую нажата кнопка.

message_id = id... из моей таблицы сообщений, которая захватывается из db и добавляется в конец URL-адреса, и в основном это то, что мой метод контроллера хранится в переменной и переходит к модели в качестве аргумента и используемый в SQL-запросе в модели, чтобы убедиться, что исправлена ​​строка в базе данных.

В следующем коде я делаю то же самое для своих сообщений в папке "Входящие". Прекрасно работает.

 <?php foreach ($query as $row):  ?>
  <tr>
    <?php switch($row['status']){
        case 0: $status = "unread"; break;            
        case 1: $status = "read"; break;
        case 2: $status = "replied"; break;
        case 3: $status = "fav"; break;
        default: $status = '';           
    }?>

    <td width="5%"><input name="message" id="messages" type="checkbox" value="" class="<?php echo $status; ?>"/></td>
    <td width="5%"><input name="sunny" id="" type="checkbox" value="" class="favourite" checked="checked" /></td>
    <td><?php echo $status; ?></td>
    <td><?php echo $row['from_user']; ?></td>
    <td><div id="test"><a href="<?php echo site_url("messages/read_message/".$row['id']); ?>"><?php echo $row['subject'] . " " . $row['message']; ?></a></a></div></td>
    <td><?php if ($row['date_sent'] == date('Y-m-d')) { echo $row['time_sent']; } else echo $row['date_sent']; ?></td>
  </tr>
<?php endforeach; ?> 

Мне просто нужно, чтобы URL-адрес выше с идентификатором, захваченным из моей загрузки базы данных после того, как флажок установлен, чтобы запрос мог запускаться и обновлять конкретный столбец в моей базе данных

и сделайте то же самое, когда поле снова не отмечено.

Мне также понадобится цикл foreach внутри функции javascript, потому что каждое сообщение в их почтовом ящике должно быть доступно для того, чтобы они могли делать сообщения любимыми сообщениями.

Здесь мой javascript

// favourite check box
    $('input.favourite:checkbox').simpleImageCheck({
  image: '<?php echo base_url()?>images/messages/check.png',
  imageChecked: '<?php echo base_url()?>images/messages/unchecked.png',
  afterCheck: function(isChecked) {
    if (isChecked) {



  //query to db from php to update favourite number to 1
  $.post('');

    }
//    else (!isChecked)
//        {
//            //query to db from php to update favourite number to 0
//              $.post('');
//        }
  }
});

Помогите с благодарностью заблаговременно.

Теги:
codeigniter

1 ответ

1
Лучший ответ

Вы можете сохранить идентификатор сообщения как атрибут данных в html. Например.

<tr data-message-id="<?php echo $id_goes_here; ?>">

вместо простого

<tr>

Затем в вашем обработчике событий вы можете получить идентификатор сообщения, например,

$(this).closest('tr').attr('data-message-id')

Я предполагаю, что this указывает на щелчок элемента (или любой элемент DOM внутри этой строки)

PS С недавней версией jquery (1.4.4, я думаю) вы также можете заменить .attr('data-message-id') на .data('message-id').

  • 0
    Работал отлично

Ещё вопросы

Сообщество Overcoder
Наверх
Меню