Ajax, zwracanie wyniku

0

Witam, próbuję stworzyć dynamiczną stronę, w której:
->skrypt php wyświetla opcje (<select>) z bazy danych [to mam]
->użytkownik wybiera sobie, którąś z opcji i dynamicznie pokazuje się inny plik [to mam]
->w tej dynamicznej treści z innego pliku użytkownik wybiera opcję z innego <select> i wynik jest odsyłany do tego pierwszego skryptu.

Właśnie nie wiem, jak zrobić (i czy w ogóle się da), aby pierwszy skrypt php odebrał dane z tego drugiego.

Kod JavaScript, który mam:

function getTaskXMLHTTP() {
	var task = false;
	try { /* Normalne przeglądarki */
		task = new XMLHttpRequest();
	} catch(error) {
		try { /* Dziwne IE */
			task = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (error) {
			try { /* Inne IE */
				task = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (error) {
				task = false;
			}
		}
	}
	return task;
}

var myTask = getTaskXMLHTTP();

function answerHTTP() {
	if (myTask.readyState == 4) {
		if (myTask.status==200) {
			var html = myTask.responseText;
			document.getElementById('module_setup').innerHTML = html;	
		} else {
			alert('Wystąpił błąd wykonania żądania.');
		}
	}
}

function readSetup(sel) {
	var module = sel.options[sel.selectedIndex].value
	var page = 'admin/modules/'+module+'_setup.php';
	myTask.open("GET",page,true);
	myTask.onreadystatechange=answerHTTP;
	myTask.send(null);
}
2

Czyli rozumiem, że chcesz po prostu do drugiego wywołania przesłać jeszcze raz te same dane, co w pierwszym żądaniu? Czy chcesz zwrot z pierwszego żądania przesłać do drugiego?
W pierwszym problemu chyba nie ma, w drugim - zwrot z pierwszego zapisz sobie gdzieś (globalna zmienna, ukryte pole input), potem przy drugim żądaniu wysyłaj to.

Mówią, że pakowanie jQuery do każdej strony to przesada (choć z drugiej strony, z Googlowskiego cdn i tak korzysta tyle osób, że nie powinno to robić różnicy i każdy to jQuery ma już w cache) - ale sądzę, że praca na "gołym" ajaxie to przesada w drugą stronę. Parokilowa biblioteczka byłaby wskazana.

0

Generalnie technikę ajax ogarniam od kilku godzin, dlatego też "goły" ajax, chodziło mi o to, aby do głównej strony przesłać z powrotem (inne dane) i faktycznie wystarczył tu tylko zwykły ukryty input. Teraz to już banał :) Dziękuję za szybko odpowiedź

0

Tzn, wydaje mi się, że po prostu trzeba stworzyć to tak aby wysyłać kilka żądań. Jedno żądanie do jednego skryptu następnie odebranie odpowiedzi i wysłanie jej kolejnym żądaniem tylko do tego drugiego skryptu.

Pozdrawiam
Marcin
PS. jeśli ogarniasz AJAX od kilku godzin to na początek dokładnie sobie przeanalizuj wszystkie typy żądań (GET,POST) i różne możliwości, ale pojedynczo, nie ma sensu na początek mieszać z wieloma żądaniami.

1 użytkowników online, w tym zalogowanych: 0, gości: 1