josephin_1
25.11.2008, 17:14:43
witam,
mam w formularzu dwa pola <select> jak cos sie zaznaczy w pierwszym polu - w tle jest wykonywany skrypt php ktory zwraca dane w postaci xmla
<records>
......
<record>
<ID> $id_podkategorii </ID>
<nazwa> $nazwa </nazwa>
<wynik> $wynik </wynik>
</record>
.......
</records>
Skrypt javascript ktory to mieli wyglada tak:
function a$(id){
return document.getElementById(id);
}
function parseRecords(xml) {
var opttypes = document.getElementById("podkategorie");
record = xml.getElementsByTagName("record");
ID = new Array();
nazwa = new Array();
for (i = 0; i < record.length; i++) {
nazwa[i] = record[i].childNodes[1].childNodes[0].nodeValue;
ID[i] = record[i].childNodes[0].childNodes[0].nodeValue;
}
for (i = opttypes.options.length-1; i >= 0; i--) {
opttypes.remove(i);
}
for(var i = 0; i < nazwa.length; i++) {
opttypes.options[i] = new Option(nazwa[i],ID[i]);
}
}
function getRecords() {
var kategoria = $("kategorie").value;
advAJAX.get({
url : "odpowiedz.php?kategoria="+kategoria,
onInitialization : function(obj) {
a$("podkategorie").disabled="true";
},
onSuccess : function(obj) {
parseRecords(obj.responseXML);
a$("podkategorie").disabled="";
}
});
}
Wszystko pieknie ladnie dziala, javascript zwraca wynik w postaci
.....
<option value=' ID '> nazwa </option>
......
chcialabym tak zmodyfikowac skrypt javascriptowy by wynik byl w postaci
.....
<option value=' ID '> nazwa (wynik)</option>
......
jakies pomysly??
erix
25.11.2008, 17:57:45
Owszem.

Dodaj do pętli mielącej ID i nazwy adekwatną linijkę do wyników. Nie musisz się nawet specjalnie wysilać, byleby odpowiednio.

Cytat
Kod
opttypes.options[i] = new Option(nazwa[i],ID[i]);
I tutaj dodajesz odpowiednią nazwę tablicy. Poczytaj o łączeniu stringów.
josephin_1
26.11.2008, 12:23:32
a co mam zrobic jak chcialabym by ajax zwracal wynik w postaci
<option value='id_podkategorii' class='option'> nazwa </option>
gdzie w kodzie wstawic class='option'
bardzo wazne.. please help
erix
26.11.2008, 13:00:39
Z tego, co kombinowałem, to chyba pozostaje tylko nadanie identyfikatora opcji i odwołanie się do niej przez DOM. Wtedy klasę nadajesz tak, jak innym obiektom drzewa.
josephin_1
26.11.2008, 15:54:07
a po polsku prosze?
probowalem tak ale nie dziala
for(var i = 0; i < nazwa.length; i++) {
opttypes.options[i] = new Option(nazwa[i]+" ("+wynik[i]+")",
ID[i]+" class='option' ");}
czy to wogle jest mozliwe?? z tego co widze to mozna tylko ustawic wartosci value, name i selected
wiecej tutaj:
http://www.devguru.com/Technologies/Ecmasc...ref/option.html
erix
26.11.2008, 16:37:20
josephin_1
3.12.2008, 12:45:38
ok dziekuje za udzielone odpowiedzi. Skorzystalem z innej biblioteki ajaxowej (minajax) - problem znikl.
Temat uwazam za zamkniety.
PS. nie polecam w znaczniku <option> wstawiac jakichkolwiek styli css - Tylko FireFox je interpretuje - reszta przegladarek nie widzi tego
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.