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

HTML+CSS+JavaScript

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

 

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

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

тема: Переход с обновлением
 
 автор: lorenberg   (29.11.2008 в 06:27)   письмо автору
 
 

Всем привет, в JS почти не понимаю, поэтому мучаюсь, проблема такая.

Есть строчки(таблица div-ная)
<div id="1"><img ...><div id="1v"></div></div>
<div id="2"><img ...><div id="2v"></div></div>
<div id="3"><img ...><div id="3v"></div></div>


При нажатии на картинку, происходит отсылка данных в другой скрипт и появляется результат во втором диве(внутреннем).
Но есть загвоздка, нужно чтобы информация была только в той ячейке, на которую нажали. А в моём случае информация только нарастает и не пропадает.
Как так сделать, чтобы при нажатии на картинку - в диве появлялась инфа, а при нажатии на другую картинку информация убиралась и появлялась в том месте, где нажали. И так далее.

Заранее всем спасибо!!

  Ответить  
 
 автор: sl1p   (29.11.2008 в 07:53)   письмо автору
 
   для: lorenberg   (29.11.2008 в 06:27)
 

var obj;
function onnclick() {
if(obj) obj.innerHTML = '';
obj = getElementById('div');
obj.innerHTML = 'laala';
}

  Ответить  
 
 автор: lorenberg   (29.11.2008 в 20:58)   письмо автору
 
   для: sl1p   (29.11.2008 в 07:53)
 

Спасибо, но если честно, вообще не понял как её применить :(
Можете чуть-чуть подсказать?

Сейчас вот такой вот код:
<script language="Javascript"> 
function xmlhttpPost(strURL,id) {
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }

    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
        
            updatepage(self.xmlHttpReq.responseText,id);

        }
    }
    self.xmlHttpReq.send(null);
}



function updatepage(str,id) 
{
document.getElementById("now"+id).innerHTML = str;
}
</script>


Применяю так:
onclick='javascript:xmlhttpPost("ссылка_на_файл,где_получаю_ответ",parentNode.id);'


Каким образом заменить или добавить?

  Ответить  
 
 автор: sl1p   (29.11.2008 в 22:25)   письмо автору
 
   для: lorenberg   (29.11.2008 в 20:58)
 

кнопки в дивах должны оставаться?

  Ответить  
 
 автор: lorenberg   (29.11.2008 в 22:35)   письмо автору
 
   для: sl1p   (29.11.2008 в 22:25)
 

Да, в идеале при нажатии кнопка должна видоизменяться на другую, но это я уже позже, сейчас главное данный вопрос решить :)

p.s. Структуру можно любую сделать, главное чтобы смысл остался.

  Ответить  
 
 автор: sl1p   (29.11.2008 в 23:21)   письмо автору
 
   для: lorenberg   (29.11.2008 в 22:35)
 


<script type="text/javascript">
var div; // сюда будем сохранять последний див в который ложили текст
function nclick(id) {
  if(div) div.innerHTML = '';
  div = document.getElementById('v'+id);
  div.innerHTML = 'yourText';
}
</script>
<div id="z1"><img ... onClick="nclick(1)"><div id="v1"></div></div>
<div id="z2"><img ... onClick="nclick(2)"><div id="v2"></div></div>
<div id="z3"><img ... onClick="nclick(3)"><div id="v3"></div></div>

ну а там уже вместо yourText прикрутите свой ajax.
зы. и не давайте айди начинающиеся с цифры.

  Ответить  
 
 автор: lorenberg   (29.11.2008 в 23:44)   письмо автору
 
   для: sl1p   (29.11.2008 в 23:21)
 

Спасибо большое за скрипт и за совет!
Только один момент. При нажатии на картиночку, снизу появляется инфа, при нажатии на другую картинку инфа пропадает и появляется под другой картинкой. Но там где инфа пропала остается пропуск - <br>. Каким образом так сделать, чтобы расстояние убиралось вместе с пропавшим текстом?

Дело, в этом:
div.innerHTML = '';

если вставляю туда какую-нибудь инфу, то она остается за место пропусков.

  Ответить  
 
 автор: sl1p   (30.11.2008 в 01:32)   письмо автору
 
   для: lorenberg   (29.11.2008 в 23:44)
 

странно у меня всё нормально, в принципе ничего не должно оставаться :\

  Ответить  
 
 автор: lorenberg   (30.11.2008 в 02:49)   письмо автору
 
   для: sl1p   (30.11.2008 в 01:32)
 

Только что дошло проверить в другом браузере. В ИЕ остается, в гуглевском и мозилле - нет. Как можно исправить, чтобы и в ИЕ работало?

  Ответить  
 
 автор: sl1p   (30.11.2008 в 02:54)   письмо автору
 
   для: lorenberg   (30.11.2008 в 02:49)
 

то что я выложил и есть этот кусок:)

  Ответить  
 
 автор: lorenberg   (30.11.2008 в 02:56)   письмо автору
 
   для: sl1p   (30.11.2008 в 02:54)
 

коммент выше обновил) мож как-то добавить принудительное удаление переменной или ещё чего :(

  Ответить  
 
 автор: sl1p   (30.11.2008 в 03:25)   письмо автору
 
   для: lorenberg   (30.11.2008 в 02:56)
 

Честно говоря, без понятия.
В ие тоже проверил - всё нормально..

зы. А как вы проверяете есть или нет? Или проще говоря каким боком этот <br> вылазит?..
Картинки и текст вить так и так с новой строки все падают.

  Ответить  
 
 автор: lorenberg   (30.11.2008 в 03:29)   письмо автору
 
   для: sl1p   (30.11.2008 в 03:25)
 

Картинка то остается, а под ней текст падает. Потом жму на другую картинку, текст убирается, а занимаемая им высота остается.

  Ответить  
 
 автор: sl1p   (30.11.2008 в 03:51)   письмо автору
 
   для: lorenberg   (30.11.2008 в 03:29)
 

Во-первых, это не <br>,
во-вторых, сохраните страницу и посмотрите что там действительно,
а в-третьих, неплохо бы скрин до кликов и после :)

  Ответить  
 
 автор: lorenberg   (30.11.2008 в 04:22)   письмо автору
1.4 Кб
 
   для: sl1p   (30.11.2008 в 03:51)
 

Ну не <br>, а эффект, как будто он.
Страницу сохранял, там ничего нет, даже изменения не фиксируются.
Скрин прилепил. Полосой отчертил ДО и ПОСЛЕ. Синим там мышкой выделил, чтоб показать, что то пространство выделяется таким образом.

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

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