Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как изменить данные в одном div на Ajax 
:(
    Опции темы
nz1
Дата 16.9.2008, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 13.1.2008

Репутация: нет
Всего: нет



хочу сделать функцию плюсов и минусов для комментариев, но не могу разобраться как передать ID блока ява-скрипту, помогите плиз

вот код js:

Код

var xmlHttp
function showmodel(id, str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
 {
 alert ("Browser does not support HTTP Request")
 return
 }
var url="comrat.php"
url=url+"?q="+str
url=url+"&id="+id

xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged()
{
if(xmlHttp.readyState==0)
    {
 document.getElementById("comm-"+id).innerHTML="<img src=images/load3.gif width=5 height=5>";
    }
if(xmlHttp.readyState==1)
    {
 document.getElementById("comm-"+id).innerHTML="<img src=images/load23.gif width=5 height=5>";
    }
    if(xmlHttp.readyState==2)
    {
 document.getElementById("comm-"+id).innerHTML="<img src=images/load3.gif width=5 height=5>";
    }
        if(xmlHttp.readyState==3)
    {
 document.getElementById("comm-"+id).innerHTML="<img src=images/load3.gif width=5 height=5>";
    }
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 {
 document.getElementById("comm-"+id).innerHTML=xmlHttp.responseText


 }
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 //Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}


код comrat.php:

Код

<?php

define ('MODULE_FILE', true);
require_once 'function/function.php';

$q=intval($_GET["q"]);
$id=intval($_GET["id"]);

$file_t = 9999999;
setcookie("comrating-".$id."", $id, time() + $file_t);

if ($_COOKIE['comrating-'.$id.''] != $id) {

if ($q==1) {
$result = $db->sql_query("UPDATE ".$prefix."_comment SET rating=rating+1 WHERE id='$id'");
} else {
$result = $db->sql_query("UPDATE ".$prefix."_comment SET rating=rating-1 WHERE id='$id'");
}
}

list ($rating) = $db->sql_fetchrow ($db->sql_query ("SELECT rating FROM ".$prefix ."_comment WHERE id=$id"));
   if ($rating==0) {
    $rating = "<font class=gray>$rating</font>";
   }
      if ($rating<0) {
    $rating = "<font class=red>$rating</font>";
   }
    if ($rating>0) {
    $rating = "<font class=green>+$rating</font>";
   }
echo "$rating";
?>


каждый коммент заключен в блок:


Код

<div id=\"comm-$id\"></div>


помогите, очень нужно!
PM   Вверх
bars80080
Дата 16.9.2008, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



зачем пхп код приведён?

каждый комментарий - это сообщение, у которого есть id. жмём допустим по рисунку звёздочек, ссылка должна иметь следующий вид:
<img src="star.gif" onclick="commap(68464, -2);" />
где <img src="star.gif" onclick="commap(<?php echo $r[$i]['id']; ?>', -2);" /> $r[$i]['id'] - id комментария
через аякс соответственно передаём на сервер id комментария и значение, суммируем и возвращаем результат, который подгружает нужную картинку
PM MAIL WWW   Вверх
nz1
Дата 16.9.2008, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 13.1.2008

Репутация: нет
Всего: нет



Цитата(bars80080 @ 16.9.2008,  14:28)
зачем пхп код приведён?

каждый комментарий - это сообщение, у которого есть id. жмём допустим по рисунку звёздочек, ссылка должна иметь следующий вид:
<img src="star.gif" onclick="commap(68464, -2);" />
где <img src="star.gif" onclick="commap(<?php echo $r[$i]['id']; ?>', -2);" /> $r[$i]['id'] - id комментария
через аякс соответственно передаём на сервер id комментария и значение, суммируем и возвращаем результат, который подгружает нужную картинку

не, там не звездочки будут, а + и -, и между ними результат

а пример я не понял, как передать id блока ява-скрипту?
PM   Вверх
bars80080
Дата 16.9.2008, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



ну, скажем так. результат отображается в блоке <div id="res68464"></div>. теперь найти его не составит труда?

т.е. нумеруем все активные элементы в соответствии с номером комментария и нам достаточно передать всего одно число, а потом уже по логике можем найти нужный элемент в области комментария
PM MAIL WWW   Вверх
nz1
Дата 16.9.2008, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 13.1.2008

Репутация: нет
Всего: нет



Цитата(bars80080 @ 16.9.2008,  19:57)
ну, скажем так. результат отображается в блоке <div id="res68464"></div>. теперь найти его не составит труда?

т.е. нумеруем все активные элементы в соответствии с номером комментария и нам достаточно передать всего одно число, а потом уже по логике можем найти нужный элемент в области комментария

неет, совсем не то, я спрашивал как передать id блока в js, а именно вот эта часть:

document.getElementById("comm-"+id).innerHTML="<img src=images/load3.gif width=5 height=5>";

вот - "comm-"+id, очевидно это не правильная конструкция

как сюда document.getElementById("comm-"+id)., передать id конкретного блока?
PM   Вверх
bars80080
Дата 17.9.2008, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



 smile я уже и не знаю что сказать

покажи наконец хтмл-разметку, в которой у тебя нарисованы эти комментарии

передать указатель на блок, указатель, так как нафига нужен сам id? нам нужно получить ссылку на блок, можно через this
к примеру <div id="com-2345" onclick="func(this);";></div> - тога в функции func(x) { x - и есть указатель   }. теперь можно манипулировать блоком: x.style.display = 'none';
если мы имеем внутренний элемент, то в принципе тоже можно воспользоваться this:
<div id="com-2345"><span onclick="func(this);";>+ (знак плюса)</span></div>, тогда чтобы получитель указатель на div: 
Код

func(x) {
    var uk = x.parentNode;
    // где uk - указатель на див
    uk.innerHTML += '<img src="" />';
}

вернуть указатель на блок с элемента извне сложнее, но можно. особенно просто это сделать, если мы говорим о комментариях. здесь в самом деле лучше использовать id:

Код

<span onclick="func(1234, true);">-</span><span onclick="func(1234, false);">+</span><div id="comm-1234"></div>
<div id="text-1234">текст самого комментария</div>
всё это легко делается на пхп, для того он придуман:
Код

for($i = 0; isset($r[$i]['id']); $i++) {
echo '<span onclick="func('.$r[$i]['id'].', true);">-</span><span onclick="func('.$r[$i]['id'].', false);">+</span><div id="comm-'.$r[$i]['id'].'"></div>';
echo '<div id="text-'.$r[$i]['id'].'">'.$r[$i]['text'].'</div>';
}
 теперь осталось в функции вставки изображения написать:
Код

func(x, y) {
    if(y) { document.getElementById('text-' + x).innerHTML = '<img src="pict1.jpg" />'; }
    else { document.getElementById('text-' + x).innerHTML = '<img src="pict2.jpg" />'; }
}

ну шо здесь не ясного?
PM MAIL WWW   Вверх
nz1
Дата 17.9.2008, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 13.1.2008

Репутация: нет
Всего: нет



да, немного разобрался, но процесс останавливается где-то тут:

Код

if(xmlHttp.readyState==0)
    {
 document.getElementById("model-"+id).innerHTML="<img src=images/load3.gif width=5 height=5>";
    }
if(xmlHttp.readyState==1)
    {
 document.getElementById("model-"+id).innerHTML="<img src=images/load23.gif width=5 height=5>";
    }
    if(xmlHttp.readyState==2)
    {
 document.getElementById("model-"+id).innerHTML="<img src=images/load3.gif width=5 height=5>";
    }
        if(xmlHttp.readyState==3)
    {
 document.getElementById("model-"+id).innerHTML="<img src=images/load3.gif width=5 height=5>";
    }


тоисть, до 4 стадии не доходит почему-то

Код

if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 {
 document.getElementById("model-"+id).innerHTML=xmlHttp.responseText


 }


помоги пожалуйста! smile 
PM   Вверх
nz1
Дата 18.9.2008, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 13.1.2008

Репутация: нет
Всего: нет



все, вопрос решен  smile 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1195 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.