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

HTML+CSS+JavaScript

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

 

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

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

тема: форма
 
 автор: zorg84   (02.04.2012 в 18:35)   письмо автору
 
 

есть форма с одинаковыми id и class как выбрать данные именно из той формы по которой кликнул
форма в class "popup_box_container message_box"


<div class="popup_box_container message_box" style="width: 410px; height: auto; top: 224px; margin-left: -205px; display: none;"> 
<div class="popup_box_container message_box" style="width: 410px; height: auto; top: 224px; margin-left: -205px; display: none;"> 
<div class="popup_box_container message_box" style="width: 410px; height: auto; top: 224px; margin-left: -205px; display: none;"> 
<div class="popup_box_container message_box" style="width: 410px; height: auto; top: 110px; margin-left: -205px; display: none;"> 
<div class="popup_box_container message_box" style="width: 410px; height: auto; top: 110px; margin-left: -205px; display: none;">
пробовал так  <button onclick="addRecord(this)">Сохранить</button>

  Ответить  
 
 автор: confirm   (02.04.2012 в 18:39)   письмо автору
 
   для: zorg84   (02.04.2012 в 18:35)
 

И где форма? Кто вас заставляет давать элементам одинаковые id?

  Ответить  
 
 автор: Sfinks80   (02.04.2012 в 19:40)
 
   для: zorg84   (02.04.2012 в 18:35)
 

> есть форма с одинаковыми id
Не может быть на одной странице 2ух элементов с одинаковыми id. По определению! Так же как не может быть кошки с 2мя хвостами. Если есть, то вы ее не назовете здоровой и не будете ждать что она будет себя адекватно вести. Если есть страница с одинаковыми id, то не ждите что браузер будет адекватно себя с ней вести.

  Ответить  
 
 автор: ЯСА   (02.04.2012 в 22:29)   письмо автору
 
   для: Sfinks80   (02.04.2012 в 19:40)
 

1. "Не может быть" - это слишком сильно сказано :-)

2. "Не должно быть" - это будет правильнее.

3. А совсем верным будет - "не желательно" :-)

  Ответить  
 
 автор: zorg84   (03.04.2012 в 21:15)   письмо автору
 
   для: ЯСА   (02.04.2012 в 22:29)
 

Спасибо за полный ответ.
Причина повторения это скрипт который вызывает всплывающее окно, после нажатие на кнопку "закрыть", окно проста скрывается.
А после того как я открываю окно создаётся новое а отправляются данные из первой формы.

  Ответить  
 
 автор: confirm   (04.04.2012 в 04:24)   письмо автору
 
   для: zorg84   (03.04.2012 в 21:15)
 

В вашем вопросе, что приоритетно, "как выбрать данные именно из той формы по которой кликнул", или вы не знаете как получить формы упрятанные в скрытых элементах?
Окно, это объект несколько иного уровня, нежели элемент окна. Представляете элементы div, а теперь речь о каких-то окнах.
Нет причины даже в этом случае давать всем одинаковый идентификатор.

  Ответить  
 
 автор: zorg84   (04.04.2012 в 21:55)   письмо автору
 
   для: confirm   (04.04.2012 в 04:24)
 

Прошу прошение за то что морочил голову. Решил проблему, частично другим способом, но не могу сделать вот что надеюсь подскажите

display: none; отключить


<div class="popup_box_container message_box" style="width: 410px; height: auto; top: 224px; margin-left: -205px; display: none;">


Пробовал так, не работает
if(document.getElementsByClassName('popup_box_container').style.display=='none') {
document.getElementsByClassName('popup_box_container').style.display=''; }

Что не так сделал?

  Ответить  
 
 автор: ЯСА   (04.04.2012 в 22:24)   письмо автору
 
   для: zorg84   (04.04.2012 в 21:55)
 

getElementsByClassName - это фича из HTML5.
И её поддерживают далеко не все браузеры.

  Ответить  
 
 автор: zorg84   (04.04.2012 в 22:26)   письмо автору
 
   для: ЯСА   (04.04.2012 в 22:24)
 

А каким же макаром тогда делать ?

  Ответить  
 
 автор: ЯСА   (04.04.2012 в 22:44)   письмо автору
 
   для: zorg84   (04.04.2012 в 22:26)
 

Сделать можно практически ВСЁ, что угодно.

Только объясните РУССКИМ языком - что именно вам надо:
1. Какое событие и на каком теге происходит.
2. Что именно и в каком теге должно происходить после события.

  Ответить  
 
 автор: zorg84   (04.04.2012 в 23:26)   письмо автору
 
   для: ЯСА   (04.04.2012 в 22:44)
 

Всё просто, мне надо изменить в dive class="popup_box_container message_box"
значение display: none; точнее убрать его

  Ответить  
 
 автор: ЯСА   (05.04.2012 в 00:40)   письмо автору
 
   для: zorg84   (04.04.2012 в 23:26)
 

Повторяю ещё раз - объяснитесь РУССКИМ языком.
По предложенным выше двум пунктам.

Повторяю их более подробно:
1. Что делает юзер и с каким тегом (+ его HTML-код)
2. Что надо сделать после действия юзера и в каком именно месте (+ HTML-код этого самого "места" и его связь с тем тегом, над которым юзер совершил действие).

Объяснитесь - обязательно помогу.

  Ответить  
 
 автор: zorg84   (05.04.2012 в 16:31)   письмо автору
115.1 Кб
 
   для: ЯСА   (05.04.2012 в 00:40)
 

Юзер кликнет по ссылке
echo '<a href="#" onclick="guiMessageBox();">Открыть окно</a>';
вызывается функция guiMessageBox();

2)Сама функция.

Окно подгружается с помощью ajex, из файла common.js"

Я изменил class "popup_box_container" на id "popup_box_container" и сделал примитивную проверку с помощью if ()

1}если id popupTransparentBG равно null = то вызываем окно с помощью guiMessageBox();

2}если id popupTransparentBG присутствует то делаем так document.getElementById('popupTransparentBG').style.display=''; короче говоря style.display делаем пустым.

Bсе работает первый рас после открытия окна

.1} кликнул открылась

.2} кликнул закрылось

.3} кликнул открылось

.4} а после кликнул на закрытие оно не реагирует только перегружать страницу


<script type="text/javascript">
 
function guiMessageBox(){
var popupTransparentBG = document.getElementById("popupTransparentBG");
alert(popupTransparentBG);
if(popupTransparentBG == null){
   
var a=1; 
}
  
if(1==a){
var messagebox = new MessageBox({title:'Названия окна'});
messagebox.addButton({label:'Отмена', style:'button_no', onClick:function(){messagebox.hide()}});
messagebox.addButton({label:'Отправить', onClick:function(){}});

messagebox.content('<form onsubmit="return false"><div><input type="hidden" id="poluchatel" name="poluchatel" value="<?php echo $myrow[login?>" /></div><div><label><br/></label><input cols="43" title="Тема" placeholder="Тема"  rows="2" id="txtEmail" type="text" /><br/><br/><br/></div><div><textarea cols="43" title="текст" placeholder="текст"  rows="2" id="txtMessage"></textarea></div><input type="hidden" name="id" id="txtid" value="<?php echo $myrow[id?>"><button onclick="addRecord(this)">Сохранить</button></form><div id="divResult">xxxxx</div>')    
messagebox.show('');

}

else {

alert('привет');
if(document.getElementById('popup_box_container').style.display=='none') {
document.getElementById('popup_box_container').style.display=''; 
document.getElementById('popupTransparentBG').style.display=''; 

}
}};

</script>



само окно после вызова html

<div id="popupTransparentBG" class="popup_transparent_bg" style="height: 1584px"/>
<div id="popup_box_container" style="width: 410px; height: auto; margin-left: -205px; top: 199.33px" class="message_box">
<div class="box_layout">
<div class="box_title_wrap">
<div class="box_title">Названия окна</div>
</div>
<div class="box_body">
<form onsubmit="return false">
<div>
<input type="hidden" id="poluchatel" name="poluchatel" value="олег"/>
</div>
<div>
<label>
<br/>
</label>
<input cols="43" title="Тема" placeholder="Тема" rows="2" id="txtEmail" type="text"/>
<br/>
<br/>
<br/>
</div>
<div>
<textarea cols="43" title="текст" placeholder="текст" rows="2" id="txtMessage"/>
</div>
<input type="hidden" name="id" id="txtid" value="194"/>
<button onclick="addRecord(this)">Сохранить</button>
</form>
<div id="divResult">xxxxxxxxxxxxxxxx</div>
</div>
<div class="box_controls_wrap">
<div class="box_controls">
<div class="button_gray fl_r">
<button id="button1_1">Отмена</button>
</div>
<div class="button_blue fl_r">
<button id="button1_2">Отправить</button>
</div>
</div>
</div>
</div>
</div>

Заранее спасибо если поможете хорошо, ну если нет то все равно спасибо так как понимаю что объяснить четко не могу , так как скрипт просто скачал сайта и в js я полный профан

  Ответить  
 
 автор: ЯСА   (05.04.2012 в 17:56)   письмо автору
 
   для: zorg84   (05.04.2012 в 16:31)
 

Запись <a href="#" onclick="guiMessageBox();">Открыть окно</a> безграмотна.

Объясняю.
Ссылка (тег <A>) от всех прочих тегов отличается тем, что при клике по ней происходит конкретное действие, а именно - переход страницы на URL, указанный в атрибуте HREF этой ссылки.

Кликните и проверьте: в адресной строке браузера произойдёт изменение - к URL добавится символ #.
Т.е. URL страницы изменится.
Более того, если ссылка, по которой кликают, находится где-то внизу страницы (т.е. если в окне браузера имеется вертикальный скроллбар и движок скроллбара не находится на самом верху), то страница ещё и "прыгнет" наверх.

Вам разве этот "переход" с "прыжками" нужен?

Нет, явно не нужен.

Поэтому необходимо этот "переход" с "прыжком" отменить. И записать так:
<a href="#" onclick="guiMessageBox(); return false">Открыть окно</a>


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

Переделывайте, проверяйте, отписывайтесь о результате.
-----

Я не просил вас описывать Javascript.
Я просил вас РУССКИМ языком, обычными словами описать ТО, что вам надо.
Например, так:
1. кликаю по ссылке и хочу чтобы блок стал невидимым
2. HTML-код ссылки - такой-то (приводите код)
3. HTML-код блока - вот такой (приводите код)
4. Блок к ссылке никакого отношения не имеет - находятся в разных местах страницы. (Или, наоборот, ссылка входит вовнутрь блока).

Неужели вам трудно это было написать?

  Ответить  
 
 автор: zorg84   (05.04.2012 в 18:07)   письмо автору
 
   для: ЯСА   (05.04.2012 в 17:56)
 

К сожалению не срабатывает,всё по прежнему.

  Ответить  
 
 автор: ЯСА   (05.04.2012 в 18:12)   письмо автору
 
   для: zorg84   (05.04.2012 в 18:07)
 

[поправлено модератором]

  Ответить  
 
 автор: zorg84   (05.04.2012 в 22:12)   письмо автору
 
   для: ЯСА   (05.04.2012 в 18:12)
 

Не можешь совладать с обострением обратись в психиатрию:)

  Ответить  
 
 автор: Valick   (05.04.2012 в 22:51)   письмо автору
 
   для: zorg84   (05.04.2012 в 22:12)
 

орать, орет, но свое дело знает :)
пишите ему словами и он вам поможет)))
_
иногда даже объяснив проблему словами кому либо, уже сам находишь решение ;)

  Ответить  
 
 автор: zorg84   (06.04.2012 в 01:55)   письмо автору
 
   для: Valick   (05.04.2012 в 22:51)
 

Всем спасибо разобрался.
Тема закрыта.

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

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