Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: jQuery. Работа с группой ссылок
 
 автор: DEM   (31.07.2011 в 00:55)   письмо автору
 
 

У меня есть несколько новостей и у каждой есть ссылки вида <a href='?plus=1&id=1'>+</a> и <a href='?minus=1&id=1'>-</a>. То есть каждой новости любой пользователь может поставить своё мнение, либо нравится, либо нет. Хочу сделать это по современному :) То есть при нажатии на ссылку, что бы страница не перегружалась, а использовала AJAX. Как бы сделал это на jquery, но вот проблема: в самой работе с AJAX`ом разобрался (исопльзую $.get), но вот как определить какой статье ставить плюс или минус, и как навешать одно и тоже событие на все эти кнопки - я не знаю :(
Буду очень признателен за помощь, заранее спасибо!


PS. и сразу тогда еще один вопрос, как сделать, что бы отправив запрос и пока пользователь ждал "оценки" новости ему выводилось вместо этих ссылок какая-нибудь картинка, а потом она заменялась каким-нибудь текстом (к примеру ГОТОВО)

  Ответить  
 
 автор: AlexSol   (31.07.2011 в 08:06)   письмо автору
 
   для: DEM   (31.07.2011 в 00:55)
 

<div class="news">
<div class="item">
<p>text</p>
<div class="vote">
<a href='?plus=1&id=1'>+</a> и <a href='?minus=1&id=1'>-</a>
</div>
</div>
</div>

$.each($('.news .item'),function(i,n){
   $(n).find('.vote a').click(function(){
      index =$('.vote a').index($(this))  // 0 ---> + ; 1 ---> -
      $(this).parent().html('голос принят')
      $.get(....)
      return false;
   })   
})

  Ответить  
 
 автор: DEM   (31.07.2011 в 08:32)   письмо автору
 
   для: AlexSol   (31.07.2011 в 08:06)
 

большое спасибо! попробую...

скажите, а использовать $.get() нормально или лучше подойдёт $.ajax()? (как я понимаю $.post работает так же, как и ГЕТ, но только можно передавать текст большего объёма)?

  Ответить  
 
 автор: AlexSol   (31.07.2011 в 09:35)   письмо автору
 
   для: DEM   (31.07.2011 в 08:32)
 

я использую $.get/$.post без $.ajax

$.post - передает методом post , $.get - через get

  Ответить  
 
 автор: DEM   (31.07.2011 в 09:49)   письмо автору
 
   для: AlexSol   (31.07.2011 в 09:35)
 

то есть, в принципе, $.ajax() - это просто функция, которая обладает большей гибкостью чем $.get()/$.post(), но ничего кардинально важного не имеет? Просто я видел примеры на $.get() и на $.ajax(), просто во второй функции можно указать больше параметров, но они не существены (нужны для узкоспециализированных целей)?

  Ответить  
 
 автор: AlexSol   (31.07.2011 в 09:59)   письмо автору
 
   для: DEM   (31.07.2011 в 09:49)
 

$.get()/$.post() вызывают $.ajax() передавая часть параметров самостоятельно

  Ответить  
 
 автор: DEM   (03.08.2011 в 06:54)   письмо автору
 
   для: AlexSol   (31.07.2011 в 08:06)
 

Всё пытался сделать и не получается :( Страница всё равно перегружается и не понял, как можно передать в $.get(); параметр ID из ссылки :(

ПОмогите пожалуйста, а то в проекте остались только маленькие поправки и вот эта дыра, а jQuery не знаю совершенно (((

ЗЫ. я поставил пежду тегами <a> картинку (красивее выглядит, да и для дизайна надо), может тогда можно сделать как-то без <a>, а просто с картинкой?

  Ответить  
 
 автор: DEM   (03.08.2011 в 07:16)   письмо автору
 
   для: DEM   (03.08.2011 в 06:54)
 

Погуглил (долго придумывал что имено там написать, но придумал) и увидел тему в ОТВЕТЫ ГУГЛ вопрос тоже про нажатие на ссылку, там привели такой пример:

$('#butt').live('click', function(){
    alert(this);
});


Мой конечно косяк, что ЯваСкрипт у меня в начале файла формируется, до вывода каких-либо данных в HTML.
Стало работать на каждой ссылке, но вопрос про то, как достать ID до сих пор остаётся :( Может его тоже передавать в GET-параметре через this?

  Ответить  
 
 автор: AlexSol   (03.08.2011 в 08:14)   письмо автору
 
   для: DEM   (03.08.2011 в 07:16)
 

можно просто указать событие, когда DOM будет доступен )


<div class="news">
<div class="item">
<p>text</p>
<div class="vote">
<a href='?plus=1&id=1'>+</a> и <a href='?minus=1&id=1'>-</a>
</div>
</div>
</div>

$(function(){
$.each($('.news .item'),function(i,n){ 
   $(n).find('.vote a').click(function(){ 
      index =$('.vote a').index($(this))  // 0 ---> + ; 1 ---> - 
      var href=$(this).attr("id");
      var arr = href.spit('=')
      alert(arr[2])
      $(this).parent().html('голос принят') 
      $.get(....) 
      return false; 
   })    
})
})

  Ответить  
 
 автор: DEM   (04.08.2011 в 13:46)   письмо автору
 
   для: AlexSol   (03.08.2011 в 08:14)
 

Фух, наконец-то разобрался :) Большое спасибо!
Но, как всегда (во всяком случае у меня :) ), возникла другая проблема... при передаче русского текста из формы он преобразуется в крякозябру :( Пробовал через escape кодировать, а в РНР декодировать (urldecode), но он просто кодирует в unix-кодировку, а потом обратно в крякозябру(((

  Ответить  
 
 автор: AlexSol   (04.08.2011 в 14:06)   письмо автору
 
   для: DEM   (04.08.2011 в 13:46)
 

utf8

  Ответить  
 
 автор: DEM   (05.08.2011 в 22:44)   письмо автору
 
   для: AlexSol   (04.08.2011 в 14:06)
 

Э-э-э-э... просто прописать в хидере файла куда мы отправляем запрос и на странице с которого запрос идёт кодировку? Спасибо, сейчас попробую...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования