Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

22.09.2009, 11:15
|
|
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме: 5866479
Репутация:
1809
|
|
Простейшая голосовалка
Помогите с голосовалкой
Есть код:
Код HTML:
Голсовать: <a href="#nul" onclick=""><img src="img/yes.gif" width="19" height="19" alt="Да" /></a> <a href="#nul" onclick=""><img src="img/no.gif" width="19" height="19" alt="Нет" /></a><br />
и есть табличка в базе данных:
Код:
CREATE TABLE `rating` (
`id` int(10) unsigned NOT NULL auto_increment,
`rating` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;
Задача сделать так, чтобы при нажатии на первую картинку, в базе, в столбце "rating" число прибавлялось на 1 без перезагрузки страницы
Помогите плиз разобраться, второй день сижу 
|
|
|

22.09.2009, 11:39
|
|
Новичок
Регистрация: 01.09.2009
Сообщений: 22
Провел на форуме: 1296546
Репутация:
22
|
|
все что делается без перезагрузки делается JS.
обясню только смысл, тк времени нет
(накидаю кусков файлов, а там разберешься)
файл ява скрипта выглядит премерно так
Код HTML:
function process()
{
// proceed only if the xmlHttp object isn't busy
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
{
// retrieve the name typed by the user on the form
name = encodeURIComponent(document.getElementById("myName").value);
// execute the quickstart.php page from the server
xmlHttp.open("GET", "quickstart.php?name=" + name, true);
// define the method to handle server responses
xmlHttp.onreadystatechange = handleServerResponse;
// make the server request
xmlHttp.send(null);
}
quickstart.php это файл, где будет обработчик (там сделаешь просто изменение записи в rating )
на картинках <a href="#nul" onclick="process()">
и в самом начале файла ссылку на файл ява скрипта. надеюсь понятно все обьяснил. если что пиши, но буду за компом только вечером
|
|
|

22.09.2009, 12:28
|
|
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме: 5866479
Репутация:
1809
|
|
Пишу в хэде:
Код HTML:
<script language="JavaScript">
function process(){
// proceed only if the xmlHttp object isn't busy
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
{
// retrieve the name typed by the user on the form
name = encodeURIComponent(document.getElementById("yes").value);
// execute the quickstart.php page from the server
xmlHttp.open("GET", "rating.php?ch=543&name=" + name, true);
// define the method to handle server responses
xmlHttp.onreadystatechange = handleServerResponse;
// make the server request
xmlHttp.send(null);
alert("rating.php?ch=543&name=" + name);
}
}
</script>
тело:
Код HTML:
<a href="#nul" onclick="process()"><img id="yes" src="img/yes.gif" width="19" height="19" alt="Да" align="absmiddle" style="margin-right:10px;" /></a> <a href="#nul" onclick="process()"><img id="no" src="img/no.gif" width="19" height="19" alt="Нет" align="absmiddle" /></a>
Файл rating.php:
PHP код:
<?php
if($ch){
if(name=="yes"){
$result = mysql_query ("UPDATE `bd` SET `rating`= (rating+1) WHERE `id`='$ch'");
}
if(name=="no"){
$result = mysql_query ("UPDATE `bd` SET `rating`= (rating-1) WHERE `id`='$ch'");
}
}
?>
но при нажатии даже адерт не авскакивает. Почему не работает? 
|
|
|

22.09.2009, 12:36
|
|
Постоянный
Регистрация: 20.01.2007
Сообщений: 705
Провел на форуме: 5381835
Репутация:
1329
|
|
mff
У тега img нет атрибута value
|
|
|

22.09.2009, 12:39
|
|
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме: 5866479
Репутация:
1809
|
|
FeraS, ага, но я пробывал и другие, там ширину передать. Что то нитак всёравно.
|
|
|

22.09.2009, 13:22
|
|
Постоянный
Регистрация: 20.01.2007
Сообщений: 705
Провел на форуме: 5381835
Репутация:
1329
|
|
mff
Код:
<script type="text/javascript">
function process() {
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) {
name = encodeURIComponent(document.getElementById('yes').title);
xmlHttp.open("GET", "rating.php?ch=543&name=" + name, true);
xmlHttp.onreadystatechange = handleServerResponse;
xmlHttp.send(null);
alert("rating.php?ch=543&name=" + name);
}
}
</script>
Код:
<a href="#nul" onclick="process()"><img id="yes" title="yes" src="img/yes.gif" width="19" height="19" alt="Да" align="absmiddle" style="margin-right:10px;" /></a> <a href="#nul" onclick="process()"><img id="no" title="no" src="img/no.gif" width="19" height="19" alt="Нет" align="absmiddle" /></a>
попробуй
Последний раз редактировалось FeraS; 22.09.2009 в 13:25..
|
|
|

22.09.2009, 15:29
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
Код:
<script>
function SetEnd (TB) {
if (TB.createTextRange){
var FieldRange = TB.createTextRange();
FieldRange.moveStart('character', TB.value.length);
FieldRange.collapse();
FieldRange.select();
}
}
</script>
<form name="form1" action="somepage.asp" method="post">
<input type="text" name="city" value="lol" onfocus="SetEnd(this)">
<input type="submit" value="Submit">
</form>
<script language="JavaScript"> document.forms[0].city.focus(); </script>
|
|
|

22.09.2009, 15:33
|
|
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме: 5866479
Репутация:
1809
|
|
Сообщение от FeraS
mff
Код:
<script type="text/javascript">
function process() {
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) {
name = encodeURIComponent(document.getElementById('yes').title);
xmlHttp.open("GET", "rating.php?ch=543&name=" + name, true);
xmlHttp.onreadystatechange = handleServerResponse;
xmlHttp.send(null);
alert("rating.php?ch=543&name=" + name);
}
}
</script>
Код:
<a href="#nul" onclick="process()"><img id="yes" title="yes" src="img/yes.gif" width="19" height="19" alt="Да" align="absmiddle" style="margin-right:10px;" /></a> <a href="#nul" onclick="process()"><img id="no" title="no" src="img/no.gif" width="19" height="19" alt="Нет" align="absmiddle" /></a>
попробуй
Не, неработает! Нет алерта  ((
|
|
|

22.09.2009, 18:28
|
|
Новичок
Регистрация: 01.09.2009
Сообщений: 22
Провел на форуме: 1296546
Репутация:
22
|
|
у тебя же к процесса, то и функции надо тоже 2 сделать:
1 передает через гет наме=йес
2 передает через гет наме=но
и еще функции не обьявил в обработчике
те вместо name надо $_GET[name]
PHP код:
<?php
if($ch){
if($_GET[name]=="yes"){
$result = mysql_query ("UPDATE `bd` SET `rating`= (rating+1) WHERE `id`='$ch'");
}
if($_GET[name]=="no"){
$result = mysql_query ("UPDATE `bd` SET `rating`= (rating-1) WHERE `id`='$ch'");
}
}
?>
|
|
|

23.09.2009, 03:33
|
|
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме: 5866479
Репутация:
1809
|
|
L.A.V Пишет что объект xmlHttp не определен...
Нашел функцию:
Код HTML:
function getXmlHttp(){
var xmlhttp;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
пишу:
Код HTML:
var xmlhttp = getXmlHttp()
и ни фига
http://xmlhttprequest.ru/#start

|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|