Php внутри функции JavaScript? - PullRequest
0 голосов
/ 19 января 2011

У меня в почтовом ящике есть функция, которая позволяет пользователям отмечать / снимать пометки в своих почтовых ящиках, которые они хотят добавить в избранное.

В настоящее время я проверяю, что происходит, когда пользователь устанавливает флажок (щелчкина изображении и заставляет его переходить из серого в цвет, что означает, что флажок установлен).

В любом случае, как видно из кода ниже, когда флажок установлен, этот URL-адрес предполагается загруженным: http://mysite.com/messages/favourite_checked

Идентификатор сообщения строки, в которой пользователь установил флажок, должен быть добавлен в конец URL, после чего загружаются «сообщения» контроллера и метод «favourite_checked», который затем передает переменную, которая захватываетmessage_id из URL, сохраняет его в переменной, затем отправляет его в мою модель, и он используется в запросе MySQL.

По сути, я обновляю столбец избранного в моей таблице сообщений и задаю для него значение = 1, где значение message_id из url совпадает с значением в таблице сообщений в моей базе данных.Так что да, когда совпадение найдено, «любимый» столбец в этой строке обновляется до 1. 1 = избранное 0 = не избранное.

Любое, что я только что подумал, я проясню, что происходит ..

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

Iпробовал $ (post) также ... тогда тоже ничего не происходит.

Может быть, кто-то может заметить это, потому что я действительно не знаю, в чем проблема.

<script type="text/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
  $.get('http://mysite.com/messages/favourite_checked'+'<?php foreach ($query as $row):  ?><?php $row['id']; ?><?php endforeach; ?>');

    }
//    else (!isChecked)
//        {
//            //query to db from php to update favourite number to 0
//              $.get('http://mysite.com/messages/favourite_unchecked');
//        }
  }
});
</script>

Ответы [ 2 ]

5 голосов
/ 19 января 2011

Я думаю, что ваша основная проблема - это некоторая путаница в том, когда PHP работает против javascript.

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

Эта часть здесь:

$.get('http://mysite.com/messages/favourite_checked'+'<?php foreach ($query as $row):  ?><?php $row['id']; ?><?php endforeach; ?>');

Похоже, вы хотите, чтобы это было динамическим, основываясь на том, что вы проверили, но я не вижу, как этот URL будет показывать именно то, что вы ищете.

1 голос
/ 19 января 2011

О PHP:

Я думаю, вы хотите заменить это:

<?php $row['id']; ?>    // does nothing

с этим:

<?php echo $row['id']; ?>    // echo's the id

Хотя я не уверен, что это сработает, поскольку ваш цикл будет генерировать странный URL, просто добавив все идентификаторы ...

О JavaScript:

Я не знаком с вызываемой вами функцией simpleImageCheck(), но есть ли у нее обработчик событий onClick или onChange? В противном случае я не вижу, чтобы ваш код вообще запускался.

...