Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Dinamičko kreiranje menija... povezani selekt elementi forme

[es] :: Javascript i AJAX :: Dinamičko kreiranje menija... povezani selekt elementi forme

[ Pregleda: 4669 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

smilan
Stojic Milan
Beograd

Član broj: 359
Poruke: 57
217.26.74.*

Sajt: www.rastko.org.yu


Profil

icon Dinamičko kreiranje menija... povezani selekt elementi forme26.05.2004. u 10:07 - pre 241 meseci
Imam dve select liste koje ispisujem pomocu php-a iz baze.
Prva select lista je tip, a druga model.
Trebalo bi da kada selektujem jedan tip iz prve select liste u drugoj select listi prikaze listu modela koji se odnose na dati tip. Sve se ucitava iz baze. Znaci potreban mi je javascript koji prikazuje drugu select listu u zavisnosti od toga sta sam selektovao u prvoj select listi.
Pozdrav!
Milan.

[Ovu poruku je menjao noviKorisnik dana 27.05.2004. u 10:22 GMT]
 
Odgovor na temu

bluesman

Član broj: 4505
Poruke: 1895
*.212.eunet.yu



+1 Profil

icon Re: dinamisko kreiranje menija...26.05.2004. u 12:05 - pre 241 meseci
Imas par tema na ovom forumu, a imas i primere kao i kod, pogledaj search.
Goran Pilipović fka bluesman
 
Odgovor na temu

smilan
Stojic Milan
Beograd

Član broj: 359
Poruke: 57
217.26.74.*

Sajt: www.rastko.org.yu


Profil

icon Re: dinamisko kreiranje menija...26.05.2004. u 12:36 - pre 241 meseci
Hvala ali ja ne nadjoh kroz search resenje...
Pozdrav!
Milan.
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
194.247.222.*

Sajt: www.novikorisnik.net


+5 Profil

icon Re: dinamisko kreiranje menija...26.05.2004. u 13:04 - pre 241 meseci
Voleo bih da je ovde malo jača pretraga, već tradicionalno. Ako neko ipak ubode neku od tema s primerima - slobodno nek ostavi i ovde link.

Konstrukcija:
Neka prvi (nezavisni - tip) selekt ima 5 opcija. Odabir neke njegove opcije izaziva postavljanje odgovarajuće zavisne liste opcija u drugi selekt (modeli prema tipu). Ovaj posao odrađuje JS. To znači da on mora da ima pripremljene nizove modela za svaki tip nezavisnog selekta.

Događaj:
Kada se promeni tip (<select name="tip" onchange="postavimodele (this.form.model, this.value);">) JS ulovi promenu i pozove funkciju koja odradi posao. Ovde se to zove postavimodele i parametri su referenca na selekt koji treba da se promeni i vrednost prema kojoj treba da odradi posao.

Finale:
Očisti postojeće opcije (selekt.options.length = 0), nadji odgovarajuće modele i poteraj u petlji
selekt.options [i] = new Option (modeli [i].text, modeli [i].value;
 
Odgovor na temu

smilan
Stojic Milan
Beograd

Član broj: 359
Poruke: 57
217.26.74.*

Sajt: www.rastko.org.yu


Profil

icon Re: dinamisko kreiranje menija...26.05.2004. u 13:17 - pre 241 meseci
Eh...Ovo je pravi odgovor. Jos kad bih imao kod za neki prost primer...
U svakom slucaju hvala..
pozdrav!
Milan.
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
194.247.222.*

Sajt: www.novikorisnik.net


+5 Profil

icon Re: dinamisko kreiranje menija...26.05.2004. u 13:29 - pre 241 meseci
Kao što već reče bluesman, postoje ovde teme s kompletnim primerima i kodom, ali ni sam ne znam to da pronađem.

Ovo je valjda dovoljno da odradiš do kraja svoj primer i okačiš ga ovde.
 
Odgovor na temu

smilan
Stojic Milan
Beograd

Član broj: 359
Poruke: 57
*.net.yu

Sajt: www.rastko.org.yu


Profil

icon Re: dinamisko kreiranje menija...26.05.2004. u 19:49 - pre 241 meseci
Pa potrudicu se i probacu da resenje postavim sto pre budem zavrsio.
Jos jednom pozdrav i hvala.
Milan.

mod (noviKorisnik): izbačen suvišan citat

[Ovu poruku je menjao noviKorisnik dana 27.05.2004. u 10:24 GMT]
 
Odgovor na temu

smilan
Stojic Milan
Beograd

Član broj: 359
Poruke: 57
217.26.74.*

Sajt: www.rastko.org.yu


Profil

icon Re: dinamisko kreiranje menija...27.05.2004. u 08:03 - pre 241 meseci
Citat:
noviKorisnik:Kao što već reče bluesman, postoje ovde teme s kompletnim primerima i kodom, ali ni sam ne znam to da pronađem.

Ovo je valjda dovoljno da odradiš do kraja svoj primer i okačiš ga ovde.

Nadjoh neki primer, pa ga malo preradih i evo koda.

Code:
<html>

<head>
<script language="javascript">
<!--

//!!!!!!!!!!!!!!!!!!! ODAVDE !!!!!!!!!! PA NADALJE


model_izaberite_names = new Array('--Izaberite--');
model_izaberite_ids = new Array('izaberite');
model_izaberite = 1;

model_value1_names = new Array('model1','model2');
model_value1_ids = new Array('vrednost1','vrednost2');
model_value1 = 2;

model_value2_names = new Array('model3','model4');
model_value2_ids = new Array('vrednost3','vrednost4');
model_value2 = 2;

//!!!!!!!!!!!!!!!!!!! DO OVDE !!!!!!!!!! SE GENERISE AUTOMATSKI IZ PHP-a


function selectTask() {
    var name="";
    var value=0;

    // get selected prj_id (new)
    var prj_id=imeforme.tip.options[imeforme.tip.selectedIndex].value;

    // get    number of model in selected tip
    var model_no=eval("model_"+prj_id);

    // Empty existing content (model)
    // Note: loop is downto because deleted options are removed from the list immediate!
    for (i=imeforme.model.options.length-1; i>=0; i--)
        imeforme.model.options[i]=null;

    // Insert new content
    for (i=0; i<model_no; i++) {
        name=eval("model_"+prj_id+"_names[i]");        // get name
        value=eval("model_"+prj_id+"_ids[i]");            // get value
        imeforme.model.options[i] = new Option(name, value);    // add new option
    }
    imeforme.model.selectedIndex=0;
    return;
}
if (imeforme.tip.options.length > 0) {
    var prj_id=imeforme.tip.options[imeforme.tip.selectedIndex].value;
    var model_no=eval("model_"+prj_id);
    for (i=0; i<model_no; i++) {
        name=eval("model_"+prj_id+"_names[i]");        // get name
        value=eval("model_"+prj_id+"_ids[i]");            // get value
        imeforme.model.options[i] = new Option(name, value);    // add new option
    }
}
-->
</script>
</head>
<body>

<!--Ovo nadalje sam ja generisao php-om ali evo u primeru je html da bi se videlo kako radi....-->

<FORM name="imeforme" METHOD="post" action="prikaz.php">
<select name="tip" onChange="selectTask();">
<OPTION VALUE= "izaberite" SELECTED>--Izaberite--</OPTION>
<OPTION VALUE= "value1" >Tip1</OPTION>
<OPTION VALUE= "value2">Tip2</OPTION>
            </select>
            <select name="model">
            <OPTION VALUE= "" SELECTED>--Izaberite--</OPTION>
            </select>

</form>
</body>
</html>


Pozdrav!
Milan.
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
194.247.222.*

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Dinamičko kreiranje menija... povezani selekt elementi forme27.05.2004. u 08:48 - pre 241 meseci
Uz sitnije izmene to može i da proradi. Idemo redom:

Nakon funkcije stoji if (imeforme.tip.options.length > 0) {.... Ovde je problem što imeforme (formular, je li) nije definisan u trenutku izvršavanja skripte pa se javlja greška. Problem se rešava odlaganjem izvršavanja koda do trenutka kada su definisani svi elementi stranice. To je događaj onload kojim se poziva funkcija u koju se smesti problematični if. Recimo:
<body onload="_initmodel();">

Drugo, imeforme ne vide svi browseri automatski kao formular koji se tako zove, već to treba da im se objasni
- imeforme = document.forms ['mojaforma']; - ovde je promenjen naziv formulara pošto oni drugi browseri (koji vide formular samo po imenu) ne mogu 2 puta da definišu isto ime... Ova deklaracija ubaci se kao prvi red funkcije _initmodel.

... i to je to. Zakačio sam fajl s ovim sitnijim izmenama.
Prikačeni fajlovi
 
Odgovor na temu

[es] :: Javascript i AJAX :: Dinamičko kreiranje menija... povezani selekt elementi forme

[ Pregleda: 4669 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.