Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: jQuery.ajax, return false не помогает, страница перезагружается.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
SkaN
Отправлено: 27 Августа, 2011 - 13:23:41
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. function vote(voicer) {
  2.         $.ajax({
  3.                 url: "index.php?id=ajax&action=vote",
  4.                 type: "GET",
  5.                 data: {voice: voicer, article: <?=$article ?>},
  6.                 success: function(html) {
  7.                         $.("#voting").html(html);
  8.                 }
  9.         });
  10.         return false;
  11. };

CODE (html):
скопировать код в буфер обмена
  1. <a href="?id=article&article=<?=$article ?>&rate=good#voting" onClick="vote('good')">

PHP:
скопировать код в буфер обмена
  1. $voice = $_GET['voice'];
  2. $article = $_GET['article'];
  3. $vote_stat = $rating_class->vote($article, $voice);
  4. if ($vote_stat == 'ok') {
  5.         ?>
  6.         <span style="padding: 20px; background-color: #99FF99; border: 1px solid green;">Спасибо, ваш голос принят!</span>
  7.         <?PHP
  8. }
  9. else {
  10.         ?>
  11.         <span style="padding: 20px; background-color: #FF8C69; border: 1px solid red;">Ошибка отправки голоса. Обратитесь к администратору.</span>
  12.         <?PHP
  13. }

то что в PHP коде есть $rating_class, это норм, он точно рабочий. А вот функция vote работать отказывается. Адрес правильный. Но я не уверен в том, что правильно передаю данные. Да и return false; почему-то не работает, страница все равно перезагружается.

(Отредактировано автором: 27 Августа, 2011 - 15:09:29)

 
 Top
SkaN
Отправлено: 27 Августа, 2011 - 23:09:50
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Что-то как-то скудновато. Может быть я плохо описал проблему. Вот, нашел в себе силы описать лучше:
Цитата:
Первый код: функция, которая отсылает запрос, в котором указывает статью, за которую проголосовали и какой голос (плохой или хороший). В коде HTML я указал, как обращается к функции. Поидее должно быть так: если у клиента работает JS, значит выполняется функция onclick="vote('good')" (например), которая не дает перезагружать страницу (return false). А если JS выключен, то переходит по ссылке и таким образом голосует. Такой порядок менять нельзя, такая задумка. Соответственно, код PHP дает запрос к методу, отдает ему название статьи и голос, и уже по ответу метода формирует сообщение ответа.
А вот, что происходит в реальности: я нажимаю на ссылку, страница перезагружается. Еще было бы что-то понятно, если бы начислялось два голоса, значит просто return false не работает. Но начисляется один голос, значит не работает вся функция, или только ajax();.
На самом деле в JS я немного "нубоват", иногда путаю синтаксис.
 
 Top
SAD
Отправлено: 27 Августа, 2011 - 23:18:22
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




<a href="?id=article&article=<?=$article ?>&rate=good#voting" onClick="vote('good')">

сделайте href="#", а значение $article передавайте вторым параметром в vote
 
 Top
SkaN
Отправлено: 28 Августа, 2011 - 09:52:24
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




ничего не происходит
 
 Top
SAD
Отправлено: 28 Августа, 2011 - 10:45:11
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




может покажете как пробовали?
 
 Top
DlTA
Отправлено: 28 Августа, 2011 - 11:06:13
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




SkaN пишет:
<a href="?id=article&article=<?=$article ?>&rate=good#voting" onClick="vote('good')">

испраить на

<a href="?id=article&article=<?=$article ?>&rate=good#voting" onClick="vote('good');return false;">
или
<a href="?id=article&article=<?=$article ?>&rate=good#voting" onClick=" return vote('good');">
 
 Top
SkaN
Отправлено: 28 Августа, 2011 - 19:10:59
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. function vote(voicer, articler) {
  2.         $.ajax({
  3.                 url: "index.php?id=ajax&action=vote",
  4.                 type: "GET",
  5.                 data: {voice: voicer, article: articler},
  6.                 success: function(html) {
  7.                         $.("#voting").html(html);
  8.                 }
  9.         });
  10.         return false;
  11. };

CODE (html):
скопировать код в буфер обмена
  1. <a href="#" onClick="return vote('good', '<?=$article ?>');">

Опять ничего н происходит, консоль ничего не пишет. onClick="vote('good', '<?=$article ?>'); return false;" тоже ничего не дает
(Добавление)
во, хоть что-то понял в консоли, нашел выполнение скрипта. Вобщем ввел там vote('good', 'lorem_ipsum'); и мне выдало ReferenceError: Undefined variable: vote

попробовал ввести весь запрос аякса, то есть
CODE (javascript):
скопировать код в буфер обмена
  1. $.ajax({
  2.         url: "index.php?id=ajax&action=vote",
  3.         type: "GET",
  4.         data: {voice: "good", article: "lorem_ipsum"},
  5.         success: function(html) {
  6.                 $.("#voting").html(html);
  7.         }
  8. });

но мне выдало SyntaxError: at index 177: expected identifier, got '('
 
 Top
SAD
Отправлено: 28 Августа, 2011 - 19:32:28
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




$.("#voting").html(html);
ну что за чушь,где написано, что нужно точку ставить перед скобкой
Цитата:
$.("
?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB