Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.10.2008, 22:21
Интересующийся
Отправить личное сообщение для Воитель Посмотреть профиль Найти все сообщения от Воитель
 
Регистрация: 24.06.2008
Сообщений: 26

Не обновление страницы(Возможно AJAX)
Здравствуйте.
Сначала бы хотел поблогадорить всех кто мне на этом форуме помогал в постижении JS
Но у меня возникла новая проблема:
нужно сделать чтобы пользователь из предложеного списка/меню(<select name="select">)
выбирая какой-то пункт, без перезагрузки страницы, формировал соседний список меню.
Т.е. в первом списке через php забиваются категории продукции, и при выборе какой-то категории с соседнем списке/меню появлялись значения(для выбора) подкатегорий товара(из бд ну или ещё каким-то вариантом).
Таким образом пользователю не нужно будет вбивать название товара и не придётся долко рыскать в огромном списке/меню.


И вот ещё какая проблемка. Как сделать так чтобы после нажатия на кнопку "Ещё товар"
Появлялось ещё два(типа связанных между собой) списка меню, ещё для одного товара.
Ответить с цитированием
  #2 (permalink)  
Старый 08.10.2008, 23:59
-
Отправить личное сообщение для twolf Посмотреть профиль Найти все сообщения от twolf
 
Регистрация: 16.07.2008
Сообщений: 207

только Ajax.
Ответить с цитированием
  #3 (permalink)  
Старый 09.10.2008, 12:00
Интересующийся
Отправить личное сообщение для Воитель Посмотреть профиль Найти все сообщения от Воитель
 
Регистрация: 24.06.2008
Сообщений: 26

Кто-нибудь может посоветовать как это всё реализовать?
Ответить с цитированием
  #4 (permalink)  
Старый 09.10.2008, 13:54
-
Отправить личное сообщение для twolf Посмотреть профиль Найти все сообщения от twolf
 
Регистрация: 16.07.2008
Сообщений: 207

Вы хотябы написали что не получается, или в чем проблема? Или вы хотите чтобы форумчане написали готовый скрипт?
Тогда Вам в раздел работа. Там за плату сделают все что надо.
Я так понял что вам нужно что-то подобное - mirplenok.ru
Ответить с цитированием
  #5 (permalink)  
Старый 09.10.2008, 17:45
Новичок на форуме
Отправить личное сообщение для designovermatter Посмотреть профиль Найти все сообщения от designovermatter
 
Регистрация: 09.10.2008
Сообщений: 3

AJAX
Привет! Вот одно из решений проблемы с помощью AJAX.

1. Сначала на страничке рисуешь элемент формы, у меня это <select...>, и <div...>, где будут "появляться" новые элементы:

2. В тэге <select...> пишем функцию onChange="make_request('search.architect.php?cat=' +this.value, 'id_дива_куда_подружаем_элем ты');".

HHTML-код выглядит вот так:
<form name="search" action="#" method="get">
<input type="text" name="keys" value="">&nbsp;
<select name="cat" onChange="make_request('search.architect.php?cat='+this.value, 'search_sub');">
  <option value="0">Alla kategorier</option>
  <option value="cars">Bilar</option>
  <option value="flats">L&auml;genheter</option>
</select>&nbsp;
<input type="submit" value="S&Ouml;K">
<div id="search_sub"><!-- здесь будет "появляться" новые элементы --></div>
</form>


3. Пишем .js файл:

function create_object() {
	var http_request = false;
	// Mozila, Safari etc.
	if(window.XMLHttpRequest) {
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/html; charset=windows-1251');
		}
	}
	// IE
	else if(window.ActiveXObject) {
		try { 
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e) {}
		}
	}
	// Error
	if(!http_request) {
		alert('Failed to create object of class XMLHTTP');
		return false;
	}
	else { return http_request; }
}

function make_request(url, id) {
	http_request = create_object();
	http_request.onreadystatechange = function() { paste_response(http_request, id); };
	http_request.open('GET', url, true);
	http_request.send(null);
}

function paste_response(http_request, id) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			document.getElementById(id).innerHTML = http_request.responseText;
		} else {
			alert('No response from server or another error accured.');
		}
	}
}


И включаем его в нашу страничку в <head>-тэге.

4. Пишем PHP-страничку search.architect.php:

<?
// search.architect.php

//кэш
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
header("Cache-Control: no-cache, must-revalidate"); 
header("Pragma: no-cache"); 
header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT");
//кодировку нужно прописывать, чтобы не было "иероглифов"
header('Content-Type: text/html; charset=windows-1251');

//вместо нижепрописоногго массива, пишем любую другую функцию, котоарая обращаеться в БД или генерирует элемнт формы...
$data = array(
	'default' => "",
	'cars' => "<select name=\"year\"><option value=\"0\">&Aring;rsmodell</option><option value=\"2000\">2000</option><option value=\"2001\">2001</option><option value=\"2002\">2002</option></select>&nbsp;<select name=\"price_from\"><option value=\"0\">Pris fr&aring;n</option><option value=\"0\">0</option><option value=\"1000\">1000</option><option value=\"2000\">2000</option><option value=\"3000\">3000</option></select>&nbsp;<select name=\"price_to\"><option value=\"0\">Pris till</option><option value=\"1000\">1000</option><option value=\"2000\">2000</option><option value=\"3000\">3000</option><option value=\"4000\">4000</option></select>",
	'flats' => "<select name=\"kvm\"><option value=\"0\">Yta</option><option value=\"20\">20 Kvm</option><option value=\"40\">40 Kvm</option><option value=\"60\">60 Kvm</option></select>"
);

if(!empty($_GET['cat'])) echo $data[$_GET['cat']];
else echo $data['default'];
?>


Вот вообщем-то и всё. Надеюсь ясно описал.

С помощю этой функции можно подгружать что угодно и куда угодно без перезагрузки странички.

Спасибо за внимание.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кодировка при использовании Ajax Nichloas AJAX и COMET 9 17.09.2009 16:06
AJAX и БД SunYang AJAX и COMET 3 06.06.2008 22:44
Цикличное обновление страницы Roman_kstu Общие вопросы Javascript 7 29.05.2008 05:55
Ajax & Autorun Ergall-M AJAX и COMET 11 08.05.2008 15:33
как дождаться AJAX ответа scuter Общие вопросы Javascript 3 23.03.2008 05:54