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
Форумы портала PHP.SU :: Версия для печати :: ссылка через javascript
Форумы портала PHP.SU » » Вопросы новичков » ссылка через javascript

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

1. Prizma - 16 Февраля, 2013 - 23:56:30 - перейти к сообщению
Реализовал на своём сайта рейтинг товаров... Но "голосование" от 1 до 10 балов, это всего лишь 10 кнопок реализованных с помощью ссылок.
перед публикацией рейтинга я задумался... а ведь когда робот попадёт на сайт и начнет индексировать ссылки робот сам будет голосовать что нежелательно и недопустимо.
Вот думаю что если эти кнопки сделать не как объекты ссылок(<a href=""></a>), а как объекты "кнопка"(<input type="buttom" .../>) этого можно будет избежать... Но к сожалению я совсем не владею javascript(ом) поэтому прошу помочь сделать действия по клику на эту кнопку заключающиеся в переходе по ссылке.
2. DeepVarvar - 17 Февраля, 2013 - 00:08:15 - перейти к сообщению
Советую перейти от ссылок (тегов "а") к блокам ("div").
И использовать POST AJAX запрос на сервер для голосования.
jquery пример:
CODE (javascript):
скопировать код в буфер обмена
  1. $("div.votelink").click(function(){
  2.   var target = $(this).attr("target"), vote = $(this).attr("vote");
  3.   $.post("/vote.php", {target: target, vote: vote}, function(response){
  4.     alert(response);
  5.   });
  6. });

"Ссылка" с оценкой четыре, где таргет это айдишник материала, а воте - значение оценки:
CODE (html):
скопировать код в буфер обмена
  1. <div class="votelink" target="45" vote="4">4</div>

PHP:
скопировать код в буфер обмена
  1. echo $_POST['target'];
  2. echo $_POST['vote'];
3. Prizma - 17 Февраля, 2013 - 05:18:20 - перейти к сообщению
обязательно попробую
4. Prizma - 18 Февраля, 2013 - 01:26:33 - перейти к сообщению
вчера руки не дошли попробывать, незнаю не получилось у меня, может jQuerry не тот, либо что то не так сделал.
я тут подумал зачем мне Ajax запрос тут?
нашел вот такой простой вариантик:
CODE (html):
скопировать код в буфер обмена
  1. <div onclick="location.href = 'http://mysayt/'">ссылка</div>

он корректен? такую ссылку поисковики индексировать не будут?
5. DeepVarvar - 18 Февраля, 2013 - 01:51:24 - перейти к сообщению
Будут
6. Prizma - 18 Февраля, 2013 - 02:34:33 - перейти к сообщению
печально то как) ладненько отложу до завтра этот вопрос...

по поводу твоего варианта можешь совсем не шарящему в javascript уточнить правильно
ли я сделал?
1. это я так понимаю в хедер пихаем так? в тегах <script type="text/javascript"></script>
DeepVarvar пишет:
$("div.votelink").click(function(){
var target = $(this).attr("target"), vote = $(this).attr("vote");
$.post("/vote.php", {target: target, vote: vote}, function(response){
alert(response);
});
});


2. так же я должен подключить jQuerry <script src="/js/jquery.js" type="text/javascript"></script>(так же в хедере)

так-с и теперь при клике по блоку с классом(votelink) должен происходить переход?(с передачей соответствующих значений)

у меня при клики просто не чего не происходило, может не так что то сделал?
7. DeepVarvar - 18 Февраля, 2013 - 02:54:53 - перейти к сообщению
Чтобы в хедере сработало, обернуть надо в:
CODE (javascript):
скопировать код в буфер обмена
  1. $(function(){
  2.   // код который отработает после полной загрузки страницы
  3. });

И по F12 (Firebug) смотрите - может ругается.
8. Prizma - 18 Февраля, 2013 - 11:46:59 - перейти к сообщению
блин не знаю что такое)) не работает и всё тут)
вот точный код с моей страниы:
в тегах <head>
CODE (html):
скопировать код в буфер обмена
  1. <script src="/js/jquery.js" type="text/javascript"></script>
  2. <script type="text/javascript">
  3.         $(function(){
  4.                 $("div.productStatRetingNumber").click(function(){
  5.                         var target = $(this).attr("target"), vote = $(this).attr("vote");
  6.                         $.post("/product/s/productStat/", {target: target, vote: vote}, function(response){
  7.                         alert(response);
  8.                         });
  9.                 });
  10.         });
  11. </script>

в <body>
CODE (html):
скопировать код в буфер обмена
  1. <div class="productStatRetingNumber" target="196" vote="1">&nbsp;1&nbsp;</div>
и так до 10(10 блоков)
версия jQuery: jQuery JavaScript Library v1.8.3
(Добавление)

ЗЫ: книжку по js купил)только начал читать, так блин на права сдавать начал, кроме билетов и пдд не чего не читаю в свободное время))
9. Prizma - 18 Февраля, 2013 - 17:27:11 - перейти к сообщению
в чем проблема то?(
(Добавление)
а не заработало.... только очень странно... после клика вместо того что бы перейти по ссылке или обновить страницу возвращает окно поверх текущего с html кодом страницы ... что с этим делать?... мне нужно что бы после отправки пост данных либо он перешел на страницу на которую пост данные послал, либо страница просто обновилась
(Добавление)
я вместо alert(response); написал location.reload() вроде всё норм работает не должно быть проблем с этой функцией?

 

Powered by ExBB FM 1.0 RC1