Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Перзагрузка модального окна, а не страницы. (https://javascript.ru/forum/dom-window/41889-perzagruzka-modalnogo-okna-ne-stranicy.html)

ProWebler 03.10.2013 01:53

Перзагрузка модального окна, а не страницы.
 
Доброй ночи! Не подскажите как можно сделать так,что-бы не перегружалась страница полностью, а только модальное окно. В одальное окно я встовляю php код. Яндекс и Гугл не дал мне похожих запросов.

danik.js 03.10.2013 07:58

XMLHttpRequest в помощь.
Цитата:

Сообщение от ProWebler
В одальное окно я встовляю php код.

Никому не интересно что и куда ты вставляешь. Это твое личное дело.

ProWebler 03.10.2013 12:20

danik.js,может подскажешь, а не будешь острить...!?!?!?!

danik.js 03.10.2013 13:37

Цитата:

Сообщение от danik.js
XMLHttpRequest в помощь.

А это разве не помощь?

ProWebler 03.10.2013 18:14

Я не силён в JS и темболее в XMLHttpRequest !!!! не поможешь мне?? я больше в php!

danik.js 03.10.2013 19:06

var request = new XMLHttpRequest();
request.open('GET', 'path/to/script.php');
request.onreadystatechange = function() {
  if (request.readyState == 4) {
      modal.innerHTML = request.responseText;
  }
};
request.send(null);

ProWebler 04.10.2013 00:24

Спасибо, но в место этого файла path/to/script.php что болжно быть??

danik.js 04.10.2013 03:56

Путь к ресурсу, содержащему новый HTML для модального окна.

ProWebler 04.10.2013 12:49

Вставил вот так в index :

<script>
			var request = new XMLHttpRequest();
request.open('GET', 'index.php');
request.onreadystatechange = function() {
  if (request.readyState == 4) {
      modal.innerHTML = request.responseText;
  }
};
request.send(null);

		</script>

ничего! также перегружается вся страница, а не окно!

danik.js 04.10.2013 13:46

Цитата:

Сообщение от ProWebler
ничего! также перегружается вся страница, а не окно!

Переменная modal должна указывать на элемент окна. Данный код нужно вызывать только когда нужно обновить окно. Ресурс должен вернуть только код окна, а не всей страницы.
У тебя в окне форма с кнопкой отправки?

ProWebler 04.10.2013 13:53

Вот часть моего кода :

ЭТО ВТОРОЕ ВЫВОДИТЬСЯ




private function second(){
		echo '<center>Теперь установите в Ваш статус эту фразу:</br> <style="width:450px;height:16px;font-size:14px;">'.$_SESSION['vkk_status'].'<br />';
		echo '<p><font size="1.5"><font color="red">После того как Вы войдете на сайт, статус можно убрать.</font></font></p>';
		echo '<form method="post" action=""><button class="md-close" type="submit" name="second" />Проверяем</button></form>';
		echo '<a href="/logout.php">Отмена</a><br /><center>';
	}
	
	private function status(){
		return $this -> AllStatus[rand(0, count($this -> AllStatus) - 1)];
	}

	private function checkForm(){
		if($_POST['vkk'] == NULL)
			return 'Нужно обязательно ввести ссылку на вашу анкету вконтакте';
		if(!preg_match("|^http://vk\.com/(id)?([a-zA-Z0-9_]+?)/?$|i", $_POST['vkk']))
			return 'Ссылка на страницу введена не корректно';
	}




	ЭТО ПЕРВОЕ ВЫВОДИТЬСЯ




	private function form(){
		echo '<center><form method="post" action="">
		
		<br>
		<input name="vkk" type="text" id="formwork_input" value="'.htmlspecialchars($_POST['vkk']).'" placeholder="http://vk.com/id123456" style="width:300px;height:26px;"></br>
		<br><br>
		<button class="md-close" type="submit" id="formwork_button" name="subm">Получить статус</button>
  	</form></center>';
	}
	
}

danik.js 04.10.2013 13:59

Добавь обработчик onsubmit для формы, в обработчике останавливай действие по умолчанию (отправку формы), и вместо этого отправляй значения полей формы асинхронно (используя указанный код)

ProWebler 04.10.2013 14:19

Что-то я нифига не понял...Помогу пожалуйста... измени как надо!

danik.js 04.10.2013 14:40

Цитата:

Сообщение от ProWebler
Помогу пожалуйста

Благодарю за помощь, но мне она не требуется :)

danik.js 04.10.2013 14:41

Цитата:

Сообщение от ProWebler
измени как надо!

Вот тут с радостью изменят: http://javascript.ru/forum/job/

ProWebler 04.10.2013 14:45

:) Я всмысле мне помочь...


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