Dinamičko punjenje select box-a

2

Dinamičko punjenje select box-a

offline
  • galeon  Male
  • Novi MyCity građanin
  • Pridružio: 11 Apr 2012
  • Poruke: 21
  • Gde živiš: Banja Luka

@gfactory,

Naišao sam i ja na more tih instant rješenja na internetu koja treba samo da se ubace u brazdu Smile ali, stvar je u tome bratac što meni treba prost primjer na kojem bih ja shvatio kako to sve skupa iz osnove fercera. Gledao sam malo onaj kod sa tvog drugog linka koji nije ajax kod iz jquery-ja, i prije sam našao neki tutorijal vezan za primjenu tog ajax koda, pa sam ga malo analizirao i skontao sam otprilike tu vrstu priče ali je nisam pokušavao primjeniti na ovom primjeru. Za ajax kod iz jquery-ja vidio sam da ima manje koda za pisati, lakše mi ga je zapamtiti, samo mi nije jasno, kako proklet bio funkcioniše u primjeru sa tri select box-a LOL
Pa ako ima iko da mi objasni kako to treba da se odradi na ovom mom primjeru ili bar neki tutorijal da predloži (po mogućnosti na srpskom, jer mi engleski nije juserfrendli Very Happy ) bio bih mu do groba zahvalan Zagrljaj
U svakom slučaju, cijenim tvoj trud i doprinos ovoj temi. Lijep pozdrav Ziveli



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 16 Jan 2010
  • Poruke: 241
  • Gde živiš: Zemun

Aj dok ne pregledam ceo kod i nađem rešenje, probaj da očistiš keš iz browser-a, jer se dešava da isti kešira JS kod i da ti zbog toga nije htelo da radi, a trebalo bi.

EDIT:
Evo sad sam pregledao kod i ono što sam ti savetovao treba da uradiš kako bi ti proradio kod. Ako je i dalje ostao isti problem da kada želiš naknadno da promeniš republiku da ti promeni grad, potrebno je samo da u delu koda:
<script type="text/javascript"> $(document).ready(function(){ $("#[b]republika[/b]").change(function(){ var id = $(this).val(); var dataString = 'id=' + id; $.ajax({ type: "POST", url: "gradovi.php", data: dataString, cache: false, success: function(msg){ $("#grad").html(msg); } }); }); }); </script>

Još jedan savet, pogleda upit za gradove. Upit izgleda ovako:
$drzava=$_POST['id']; $sql2=mysql_query("select * from gradovi where republikaId='$drzava' and drzavaId='$drzava'");

Nije dobro urađen, posleđuješ mu iste vrednosti i mislim da ne možeš da dobiješ prave podatke. Ja sam izbacio deo "and drzavaId='$drzava'".



offline
  • galeon  Male
  • Novi MyCity građanin
  • Pridružio: 11 Apr 2012
  • Poruke: 21
  • Gde živiš: Banja Luka

Napisano: 07 Maj 2012 8:59

Prije svega drugog, moram da ti se mnogo zahvalim na tome što si odvojio vremena i uzeo ovaj kod da ispitaš i što si utvrdio da kod funkcioniše na način na koji sam ga ja postavio. Barem mi je sa te strane mnogo laknulo.
A to, što kod mene i nakon svih intervencija ( čišćenja keša iz pretraživača, ispitivanja programa na drugim pretraživačima, defragmentacije i optimizacije diska, pa i izmjene koda na način kako si mi sugerisao ) nije dalo rezultata, navodi me samo na jedan zaključak - reinstalacija wamp servera ili još bolje zamjena sa xamp-om. Ali to je meni najmanji problem, nabitnije je meni saznanje da kod funkcioniše.
Prijatelju mnogo ti hvala! Srdačan pozdrav, Darko.

Dopuna: 07 Maj 2012 15:25

Izgleda da sam se prerano obradovao.
Sve sam pokušao, i na bratovom kompjuteru sam uradio sve da kod profunkcioniše, ali bezuspješno.
Stvarno nemam pojma zašto taj kod kod mene ne radi.

Evo šta se dešava kod ovog koda na oba kompjutera:

 <html> <head>   <title></title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#drzava").change(function (){       var id = $(this).val();       var dataString = 'id=' + id;    $.ajax({       type: "POST",       url: "republike.php",       data: dataString,       cache: false,       success: function(msg){             $("#republika").html(msg);             }          });       });    }); </script> <script type="text/javascript"> $(document).ready(function(){ $("#drzava").change(function(){       var id = $(this).val();       var dataString = 'id=' + id;    $.ajax({       type: "POST",       url: "gradovi.php",       data: dataString,       cache: false,       success: function(msg){             $("#grad").html(msg);             }          });       });    }); </script> </head> <body>    <form name="forma" id="forma" action="republike.php"  method="POST" >        <div style="margin:80px">       <label>Drzave :</label>       <select name="drzava" id="drzava" >          <option selected="selected">--Izaberite drzavu--</option>          <?php             include('conn.php');             $sql=mysql_query("select * from drzava");             while($row=mysql_fetch_array($sql))             {                $drzava=$row['drzavaId'];                $drzave=$row['drzave'];                echo '<option value="'.$drzava.'">'.$drzave.'</option>';             }          ?>       </select> <br/><br/>       <label>Republike :</label>       <select name="republika" id="republika">          <option selected="selected">--Izaberite republiku--</option>       </select><br/><br/>       <label>Gradovi :</label>       <select name="grad" id="grad">          <option selected="selected">--Izaberite grad--</option>       </select>              </div></br>               </form> </body> </html>

republike.php
 <?php include('conn.php'); if($_POST['id']) {    $drzava=$_POST['id'];    $sql=mysql_query("select * from republika where drzavaId='$drzava'");    while($row=mysql_fetch_array($sql))    {       $republika=$row['republikaId'];       $republike=$row['republike'];       echo '<option value="'.$republika.'">'.$republike.'</option>';    }    } ?>

gradovi.php

 <?php include('conn.php'); if($_POST['id']) {    $drzava=$_POST['id'];            $sql2=mysql_query("select * from gradovi where republikaId='$drzava'");    while($row=mysql_fetch_array($sql2))    {       $gradId=$row['gradId'];       $gradovi=$row['gradovi'];       echo '<option value="'.$gradId.'">'.$gradovi.'</option>';    } } ?>






A, evo šta se dešava kad selektujem id=#republika u drugom ajax bloku umjesto id=#drzava:

 <html> <head>   <title></title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#drzava").change(function (){       var id = $(this).val();       var dataString = 'id=' + id;    $.ajax({       type: "POST",       url: "republike.php",       data: dataString,       cache: false,       success: function(msg){             $("#republika").html(msg);             }          });       });    }); </script> <script type="text/javascript"> $(document).ready(function(){ $("#republika").change(function(){       var id = $(this).val();       var dataString = 'id=' + id;    $.ajax({       type: "POST",       url: "gradovi.php",       data: dataString,       cache: false,       success: function(msg){             $("#grad").html(msg);             }          });       });    }); </script> </head> <body>    <form name="forma" id="forma" action="republike.php"  method="POST" >        <div style="margin:80px">       <label>Drzave :</label>       <select name="drzava" id="drzava" >          <option selected="selected">--Izaberite drzavu--</option>          <?php             include('conn.php');             $sql=mysql_query("select * from drzava");             while($row=mysql_fetch_array($sql))             {                $drzava=$row['drzavaId'];                $drzave=$row['drzave'];                echo '<option value="'.$drzava.'">'.$drzave.'</option>';             }          ?>       </select> <br/><br/>       <label>Republike :</label>       <select name="republika" id="republika">          <option selected="selected">--Izaberite republiku--</option>       </select><br/><br/>       <label>Gradovi :</label>       <select name="grad" id="grad">          <option selected="selected">--Izaberite grad--</option>       </select>              </div></br>               </form> </body> </html>

a druga dva fajla su kao i gore ne promijenjena.




a kad stavim  $("#[b]republika[/b]") onda se desi ovo:




Znači isto se dešava na oba kompjutera. Šta ja to radim krivo kad ne ide, nemam pojma?

offline
  • PHP programer
  • Pridružio: 26 Okt 2007
  • Poruke: 1064
  • Gde živiš: u Apache

@galeon

ajde okači i dump te tvoje baze , verujem da ti je cvrle napravio kako treba al bih i ja voleo da probam,pa možda ti i kažem gde grešiš. Smile

btw,proradiće to kad tad. Mr. Green

offline
  • galeon  Male
  • Novi MyCity građanin
  • Pridružio: 11 Apr 2012
  • Poruke: 21
  • Gde živiš: Banja Luka

gfactory ::@galeon

ajde okači i dump te tvoje baze , verujem da ti je cvrle napravio kako treba al bih i ja voleo da probam,pa možda ti i kažem gde grešiš. Smile

btw,proradiće to kad tad. Mr. Green


Nadam se da hoće, već sam počeo gubiti volju i sve sam više sklon onoj opciji da nađem neki gotov kod koji fercera i da ga prilagodim svojim potrebama Neutral

A evo baze:

mycity.rs/must-login.png

 CREATE TABLE `drzava` (    `drzavaId` INT(10) NOT NULL AUTO_INCREMENT,    `drzave` VARCHAR(50) NOT NULL,    PRIMARY KEY (`drzavaId`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=2; CREATE TABLE `gradovi` (    `gradId` INT(10) NOT NULL AUTO_INCREMENT,    `drzavaId` INT(10) NOT NULL,    `republikaId` INT(10) NOT NULL,    `gradovi` VARCHAR(10) NOT NULL,    PRIMARY KEY (`gradId`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=10; CREATE TABLE `republika` (    `rebublikaId` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,    `republike` VARCHAR(10) NOT NULL,    `drzavaId` INT(10) UNSIGNED NULL DEFAULT NULL,    PRIMARY KEY (`rebublikaId`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=4;  

offline
  • Pridružio: 16 Jan 2010
  • Poruke: 241
  • Gde živiš: Zemun

Sad nešto gledam ovo što si postavio i malo sam zbunjen. U prvom postu ti si tražio da kada izabereš državu, da ti automatski prikaže i republiku i da kada naknadno promeniš republiku ne prikaže ti grad. Sada gledam ovo poslednje što si postavio i kontam da ti hoćeš da kada izabereš državu, da ti se automatski prikaze republika i grad, da li je to tačno?

U nastavku ti postavljam tvoj kod koji sam baš malo izmenio i koji kod mene radi. On radi po sledećem principu. Izaberem državu, učita mi prvu republiku, kada promenim neku drugu republiku učita mi se odgovarajući grad za tu republiku.

Kod je sledeći:
<html> <head> <title></title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#drzava").change(function (){ var id = $(this).val(); var dataString = 'id=' + id; $.ajax({ type: "POST", url: "republike.php", data: dataString, cache: false, success: function(msg){ $("#republika").html(msg); } }); }); }); </script> <script type="text/javascript"> $(document).ready(function(){ $("#republika").change(function(){ var id = $(this).val(); var dataString = 'id=' + id; $.ajax({ type: "POST", url: "gradovi.php", data: dataString, cache: false, success: function(msg){ $("#grad").html(msg); } }); }); }); </script> </head> <body> <form name="forma" id="forma" action="republike.php" method="POST" > <div style="margin:80px"> <label>Drzave :</label> <select name="drzava" id="drzava" > <option selected="selected">--Izaberite drzavu--</option> <?php $con=mysql_connect("localhost","root",""); mysql_select_db("test", $con); $sql=mysql_query("select * from drzava"); while($row=mysql_fetch_array($sql)){ $drzava=$row['drzavaId']; $drzave=$row['drzave']; echo '<option value="'.$drzava.'">'.$drzave.'</option>'; }?> </select> <br/><br/> <label>Republike :</label> <select name="republika" id="republika"> <option selected="selected">--Izaberite republiku--</option> </select> <br/><br/> <label>Gradovi :</label> <select name="grad" id="grad"> <option selected="selected">--Izaberite grad--</option> </select> </div></br> </form> </body> </html>

Fajlovi republike.php i gradovi.php su isti kao i tvoji.

Ako hoćeš da automatski po izboru države da ti učita odmah prvu republiku i njen grad, onda to treba da uradiš na sledeći način:
<html> <head> <title></title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#drzava").change(function (){ var id = $(this).val(); var dataString = 'id=' + id; $.ajax({ type: "POST", url: "republike.php", data: dataString, cache: false, success: function(msg){ $("#republika").html(msg); id=$("#republika").val(); dataString='id='+id; $.ajax({    type: "POST",    url: "gradovi.php",    data: dataString,    cache: false,    success: function(msg){    $("#grad").html(msg);    }    }); } }); }); }); </script> <script type="text/javascript"> $(document).ready(function(){ $("#republika").change(function(){ var id = $(this).val(); var dataString = 'id=' + id; $.ajax({ type: "POST", url: "gradovi.php", data: dataString, cache: false, success: function(msg){ $("#grad").html(msg); } }); }); }); </script> </head> <body> <form name="forma" id="forma" action="republike.php" method="POST" > <div style="margin:80px"> <label>Drzave :</label> <select name="drzava" id="drzava" > <option selected="selected">--Izaberite drzavu--</option> <?php $con=mysql_connect("localhost","root",""); mysql_select_db("test", $con); $sql=mysql_query("select * from drzava"); while($row=mysql_fetch_array($sql)){ $drzava=$row['drzavaId']; $drzave=$row['drzave']; echo '<option value="'.$drzava.'">'.$drzave.'</option>'; }?> </select> <br/><br/> <label>Republike :</label> <select name="republika" id="republika"> <option selected="selected">--Izaberite republiku--</option> </select> <br/><br/> <label>Gradovi :</label> <select name="grad" id="grad"> <option selected="selected">--Izaberite grad--</option> </select> </div></br> </form> </body> </html>

I ovde su fajlovi republike.php i gradovi isti. U ovoj novoj skripti sam dodao kod koji se koristi za prikaz grada na osnovu izabrane republike.

Nadam se da je ovo što ti tražiš i da će i kod tebe raditi, jer kod mene sve radi.

offline
  • galeon  Male
  • Novi MyCity građanin
  • Pridružio: 11 Apr 2012
  • Poruke: 21
  • Gde živiš: Banja Luka

Napisano: 07 Maj 2012 21:51

Sve je i kod mene tako, u startu kad izaberem državu automatski se pojavljuje prva republika u nizu (a ispod nje i druge dvije) i zatim njena tri grada, ali poslije kad izaberem drugu republiku ništa se više ne dešava - ajax ne radi.

Dopuna: 07 Maj 2012 21:59

cvrlebg :: Sada gledam ovo poslednje što si postavio i kontam da ti hoćeš da kada izabereš državu, da ti se automatski prikaze republika i grad, da li je to tačno?



Da, da upravo tako.

offline
  • Pridružio: 16 Jan 2010
  • Poruke: 241
  • Gde živiš: Zemun

Ne znam kako kod tebe ne radi, evo već nekoliko puta sam proverio kod koji sam ti poslao kod mene i kada naknadno izaberem republiku prikaže mi grad koji njoj pripada. Pogledaj u Firebug-u ili u Chrome-u preko Inspect-a da li ti prijavljuje neku grešku.

offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

Prijatelju sad sam ti pregledao kod, vjerovao ili ne greska je glupa Smile

Stavio si red u tabelu gradovi koji se zove rebublikaId, a u kodu si definisao u fajlu gradovi.php kao republikaId Wink p!=b Mr. Green Dok nisam ovo ispravio nije ni meni radilo, sada radi.

Za ubuduce, ili instaliraj firebug za ffox, ili koristi inspec element u chromu, preko njega sam uhvatio gresku Smile

offline
  • PHP programer
  • Pridružio: 26 Okt 2007
  • Poruke: 1064
  • Gde živiš: u Apache

Svaka čast Inenad Wink

a ja se ubih celo veče prepravljajući kod. Tako sam i ja jednom umesto donje crte u bazu stavio srednju,a u kodu pisao donju i eto meni 2 dana zajebancije..dok nisam slučajno ugledao u bazi. LOL

Ko je trenutno na forumu
 

Ukupno su 893 korisnika na forumu :: 14 registrovanih, 1 sakriven i 878 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Dimitrije Paunovic, gorican, goxin, Kriglord, Kristian_KG, mikki jons, Ognjen D., simazr, Sir Budimir, sovanova95, stalja, Valter071, vaso1, zdrebac