Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите с модальным окном!! (https://javascript.ru/forum/dom-window/8610-pomogite-s-modalnym-oknom.html)

-Dima- 04.04.2010 18:07

Помогите с модальным окном!!
 
Здравствуйте! Помогите пожалуйста прикрутить модальное окно.
Есть скрипт рейтинга к статье, необходимо, чтоб при нажатии на оценку появлялось окно с опросом, к примеру: ваш пол:м/ж ;ваш возраст:-18/18-25/25-40/40-60..и только после нажатия кнопки сабмит все значения(в том числе и значение оценки) передавались в базу мускля. ПХП знаю, с этим нет проблем, а вот ява...)) Подскажите в какое место нужно подставить скрипт окна, в скрипт рейтинга??
Вот содержимое скрипта рейтинга:
var ElementRating=new Class({
initialize:function(e,d){this.element=$(e);
this.url=d;
var b=this,a=this.element.getElements("div.stars");
a.each(function(c,f){c.addEvent("click",function(){b.vote(a.length-f)});
c.addEvent("mouseenter",function(){c.addClass("hover")});
c.addEvent("mouseleave",function(){c.removeClass("hover")})})},
vote:function(e){var d=this;
(new Ajax(this.url,{method:"post",data:"method=vote&args[0]="+e,onComplete:function(b){var a=b.split(",");
b=a[0];a=a[1];b>0&&d.element.getElement("div.previous-rating").setStyle("width",b+"%");
d.element.getElement("div.vote-message").setHTML(a)}})).request()}});
ElementRating.implement(new Options);


А вот скрипт модального окна в инете нашел как в фейсбуке:

window.addEvent('domready',function() {
			/* hide using opacity on page load */
			$('fb-modal').setStyles({
				opacity:0,
				display:'block'
			});
			/* hiders */
			$('fb-close').addEvent('click',function(e) { $('fb-modal').fade('out'); });
			window.addEvent('keypress',function(e) { if(e.key == 'esc') { $('fb-modal').fade('out'); } });
			$(document.body).addEvent('click',function(e) { 
				if($('fb-modal').get('opacity') == 1 && !e.target.getParent('.generic_dialog')) { 
					$('fb-modal').fade('out'); 
				} 
			});
			/* click to show */
			$('fb-trigger').addEvent('click',function() {
				$('fb-modal').fade('in');
			});
		});


а вот так вызывается рейтинг в пхп:
<script type="text/javascript">
	// <!--
	var vt = new ElementRating('rating-<?php echo $instance; ?>', '<?php echo JRoute::_($link, false); ?>');
	// -->
	</script>

Помогите,пожалуйста, очень нужно, проект останавливается!!!
Если у кого есть готовое решение,буду очень признателен:)
Заранее спасибо!

Gvozd 04.04.2010 21:04

Здравствуйте!

Судя по вашему сообщению, вы ну совсем не знаете javascript.

Освойте основы языка и вопрос отпадет сам, полностью или частично.
А с чем не справитесь - поможем.

На сайте javascript можно начать изучать с учебника, раздел Основы javascript.
Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/

Задавайте конкретные вопросы по ходу дела.

-Dima- 05.04.2010 00:42

Блин, ну я ведь и сказал, что не знаю javascript!! html и php знаю,спасибо за предложенные справочники,но я в них не нуждаюсь,а яву крутить не доводилось...понимаю,что то, что мне надо, ничего сложного не должно быть, просто нет времени вникнуть в синтаксис..обязательно изучу, но чуть позже.
если бы было время, то я бы и не задавал вопросов!!!!!
Поэтому, кто может, и не сложно, ответьте по сути, пожалуйста!!!:help:

subzey 05.04.2010 01:13

«Я не знаю javascript, не хочу и не собираюсь его учить, мне нужен результат сейчас!»

Вам в раздел «Работа».

-Dima- 11.04.2010 12:44

Вобщем, не много разобрался, ничего сложного не оказалось,спасибо, что заставили;)
Вот с аяксом, пока ну никак:)) форму сделал..все работает,но вот сейчас передо мной дилемма,как отправить эти данные, по отдельности или формой,там всего-то три параметра...
Возник такой вопрос: я вызываю окно вот так:
a.each(function(c,f){c.addEvent("click",function(){$('fb-modal').fade('in'),b.vote(a.length-f)});

но мне бы хотелось, вызвать окно после того как вернется, значение "b>0" тупым подставлением
onComplete:function(b){var a=b.split(",");
b=a[0];a=a[1];b>0&&$('fb-modal').fade('in');d.element.getElement("div.previous-rating").setStyle("width",b+"%");

не заработает//
может кто подскажет как это сделать правильно..

-Dima- 14.04.2010 17:02

И в этом разобрался))))
новый вопрос возник, можно ли как-то переменную из класса передать в мою модальн. форму??
я передаю переменную в div с помощью set('html'...)(сие чудо на mootools делаю), а потом вытягиваю ее с формы с помощью get('html'), но возникла трудность: нужно из класса вытянуть урл для аякс запроса,сделал опять также, скрыл ее стилями, но место где находится div видно, мне кажется есть лучше способ.
Если кто знает, подскажите,пожалуйста!!))

neurostep 14.04.2010 17:14

Как я понял из Вашего кода, нужное url в "классе" находится под
this.url


Если не прав - поправьте.
Ну так и экземпляр класса и указывает на этот url:
vt.url

-Dima- 14.04.2010 17:32

Да, Вы правы!
Спасибо большое!!
получилось))) я тут себе голову ломаю,а все так просто!))
+

-Dima- 15.04.2010 15:25

Подскажите пожалуйста, такой момент.
Можно ли форму вынести в отдельный файл, а потом по запросу подгружать ее?если да,то как это осуществить??..

Skipp 15.04.2010 15:40

Цитата:

Сообщение от -Dima- (Сообщение 51737)
Подскажите пожалуйста, такой момент.
Можно ли форму вынести в отдельный файл, а потом по запросу подгружать ее?если да,то как это осуществить??..

почитай http://xmlhttprequest.ru


Часовой пояс GMT +3, время: 21:38.