У меня есть контроллер: сообщения метод в этом контроллере: 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('');
// }
}
});
Помогите с благодарностью заблаговременно.
Вы можете сохранить идентификатор сообщения как атрибут данных в 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')
.