|
|
|
| Здравствуйте. Я в джава скриптах полный нуб. Очень прошу помочь.
Хочу сделать на страничке голосование за и против статьи.
В <head> я прописал путь к скачанной jquery
<script type="text/javascript" src="moduls/jquery/jquery-1.7.1.js"></script>
|
Далее между <head> идёт скрипт с которым у меня проблемы <script type="text/javascript"></script>
В <body>
$net_vote = $row['votes_up'] - $row['votes_down']; // $row['votes_up'] это голоса за эту статью
//$row['votes_down'] это голоса против статьи
// $net_vote Это разница между за и против
// $row['id'] это id статьи
echo "<div class='entry'><span class='votes_count' id='".$row['id']."'> ".$net_vote." голосов</span>
<span class='vote_buttons' id='vote_buttons".$row['id']."'>
<a href='javascript:;' class='vote_down' id='".$row['id']."'>Vote Down!</a>
<a href='javascript:;' class='votes_up' id='".$row['id']."'>Vote Up!</a>
</span>
</div>";
|
Теперь допустим пользователь нажал на ссылку Vote Down!
Как далее делать? помогите пожалуйста | |
|
|
|
|
|
|
|
для: BlueWolf
(10.01.2012 в 00:45)
| | А как вам видится работа скрипта? Ведь JavaScript работает на клиентской машине, если не отправить данные на сервер и не сохранить там, вся работа JavaScript пропадет после выключения браузера пользователем и разумеется без сервера никак нельзя оповестить другие клиенты об изменившихся результатах. Я боюсь, тут не с JavaScript надо начинать, а с серверной части. | |
|
|
|
|
|
|
|
для: BlueWolf
(10.01.2012 в 00:45)
| | Голосование - штука примитивная. Никакого Jquery можно не использовать.
Только вам надо ПОНЯТЬ, что главное в "голосовании", как и в "отзывах", "комментариях", "рейтингах", "оценках" и прочее - это надо иметь возможность ЗАПИСЫВАТЬ РЕЗУЛЬТАТЫ (голосования, коментариев, рейтингов, оценок и прочее) в файле (файлах) НА СЕРВЕРЕ.
А это - "записывать результат в файл" - может делать ТОЛЬКО лишь программа, написанная на серверном языке (PHP, Perl, ASP...) и там же - на сервере - размещённая.
То есть вам В ПЕРВУЮ ОЧЕРЕДЬ нужно, чтобы у вас была возможность не только написать программу на одном из серверных языков, но и разместить её на сервере, где имеется поддержка этого самого языка.
Вот с этого и надо начинать.
Ваш сервер (хостинг) даёт вам возможность писать и размещать программы на языке PHP или Perl (или на каком ином серверном языке)?
Ваш сервер (хостинг) даёт вам возможность устанавливать "права доступа" для файлов на сервере - а именно права "читать", "изменять" и "создавать" файлы "для программ", "для групп" и "для всех"?
Для справки: например, бесплатный хостинг на сайте narod.ru возможности размещать программы на серверных языках НЕ ПРЕДОСТАВЛЯЕТ.
-----
А уж как потом организовать вызов этой самой серверной программы - или только средствами HTML через форму (с перезагрузкой страницы), или же путем передачи информации серверной программе без перезагрузки страницы, используя Javascript (технология AJAX), или как-то ещё - это дело уже десятое.
Ферштейн? | |
|
|
|
|
|
|
|
для: АЯС
(10.01.2012 в 14:15)
| | на хостинге есть php. В php я понимаю (конечно не профессионально)
При помощи Javascript (технология AJAX), надо передать данные обработать их другому файлу php. Поле обработке данные должны вернутся на открытый документ пользователя. Всё должно происходить без перезагрузки страницы пользователя.
Надо передать id документа, полльзователя (ник пароль), и информацию vote_down или votes_up
$net_vote = $row['votes_up'] - $row['votes_down'];
echo "<div class='entry'><span class='votes_count' id='".$row['id']."'> ".$net_vote." голосов</span>
<span class='vote_buttons' id='vote_buttons'>
<a href='javascript:;' class='vote_down'>Vote Down!</a>
<a href='javascript:;' class='votes_up'>Vote Up!</a>
</span>
</div>";
|
$(function(){
$("a.vote_up").click(function(){//Действия при нажатии ссылки vote_up
Что тут писать?
});
});
|
| |
|
|
|
|
|
|
|
для: BlueWolf
(10.01.2012 в 21:37)
| | Не знаю я - что вы там писать собираетесь.
Ибо Jquery никогда не пользовался и в будущем пользоваться этими "костылями для убогих" не собираюсь.
----
1. Необходимо создать глобальный (сиречь - вне всяких функций) объект HttpRequest. Это делается в две строки (даю кроссбраузерный код):
if (navigator.appName == 'Microsoft Internet Explorer') htReq = new ActiveXObject ('Microsoft.XMLHTTP');
else htReq = new XMLHttpRequest ();
|
2. В момент клика запускается функция, которая передаёт серверному файлу нужные данные в GET-режиме и назначает другую функцию, которая запустится в момент получения ответа от сервера. Кроссбраузерный код тоже весьма прост:
function sendReq (id_doc, nick_user, rezult)
{
htReq.open ('get', 'ФАЙЛ.php?id=' + id + '&nick=' + nick_user + '&rez=' + rezult);
htReq.onreadystatechange = getReq;
htReq.send (null);
}
| Примечание 1: Функция, как видите, имеет аргументы, которые ей надо передать. Перечисляю по порядку: id документа, никнейм пользователя, результат голосования.
Примечание 2: Использовать в Javascript'е пароль пользователя - это верх глупости. Код на Javascript'е доступен ВСЕМ.
3. Ну и, наконец, функция, коя будет делать на странице то, что вам надо, обрабатывая полученный от сервера ответ htReq.responseText:
function getReq ()
{
if (htReq.readyState == 4) alert ('Делаем то, что надо с ответом сервера: ' + htReq.responseText);
}
|
4. Ваш серверный ФАЙЛ.php должен сначала обработать $_SERVER['QUERY_STRING'] и "вытащить" оттуда переданные пары "имя=значение"
Затем ФАЙЛ.php должен сделать нужные записи в каком-то вашем серверном ASCII-файле об изменении результатов голосования.
И, в конце концов, ФАЙЛ.php должен установить header ("Content-type: text/plain; charset=utf-8"); и вывести (методом print, например) то, что вы хотите передать странице с сервера (например, новое значение результатов голосования).
-----
Пример реализации см. http://codecenter.awardspace.com/selects.html | |
|
|
|
|
|
|
|
для: АЯС
(10.01.2012 в 22:10)
| | требуется ли устанавливать кодировку отправляемых с формы данных хидером типа:
htReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=utf-8');
|
? | |
|
|
|
|
|
|
|
для: SerG7
(11.01.2012 в 18:08)
| | Ссылку с работающим примером я вам дал.
Есть там "установка кодировки отправляемых с формы данных"?
Есть там ВООБЩЕ форма?
А в вашем коде разве есть форма? Клик, вызывающий функцию, происходит ведь по ссылкам, нет?
На хрена козе баян, спрашивается, если она и на барабане играть не умеет?
На хрена бабе презерватив? На что она его надевать будет? :-) | |
|
|
|
|
|
|
|
для: АЯС
(11.01.2012 в 18:53)
| | Вопрос был попутным..не относящимся к данному посту...чтоб не заводить новую тему....
насчет бабы порадовало.... | |
|
|
|