Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Dynamiczne 2 selecty
rachwal
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 29.08.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


witam,
mam problem, mianowicie:

na stronie mamy dwa pola Select,
w zaleznosci od wyboru pierwszego selecta,
w drugim wyswietlaja sie odpowiednie opcje,

wyobrazic mozna to sobie na podstawie modeli samochodow
i ich typow, po wybraniu konkretnego modelu w drugim polu
wyswietlaja mi sie tylko typy danego modelu.

chcialbym to zrobic bez przeladowywania strony (czyli pewnie JS),
a typy i modele, czyli dane do obu selectow pobierac z bazy :/

za wszelka pomoc i sugestie dziekuje,
Go to the top of the page
+Quote Post
AxZx
post
Post #2





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

Ostrzeżenie: (0%)
-----


i nikt od sierpnia ubieglego roku nie odpowiedzial
ja borykam sie z tym samym problemem i nikt sie nie chce podzielic wiadomosciami na ten temat

a moze lepiej jednak odswiezac strone?
bo jak ktos ma wylaczony JS?
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




http://forum.php.pl/index.php?showtopic=33...=0&#entry189140
Go to the top of the page
+Quote Post
php programmer
post
Post #4





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

Ostrzeżenie: (0%)
-----


robiłem to jakiś miesiąc temu, to są fragmenty najważniejszych kodów

plik CSV
Kod
Wszystkie
Nieruchomo¶ci         | Sprzedam  | Kupię | Poszukuję do wynajęcia | Mam do wynajęcia | Zamienię
Motoryzacja           | Sprzedam  | Kupię | Zamienię | Czę¶ci zamienne
Sprzęt Elektroniczny  | Sprzedam  | Kupię | Zamienię
Rowery                | Sprzedam  | Kupię | Zamienię | Wspólna jazda



plik php+js
Kod
<?
$plik = file('ogloszenia/kategorie.csv');
$ile = count($plik);

echo '<script language="javascript">'."\n";


// zmienne odpowiadające tablicy POST
echo "var kategoria  = '".$kategoria."';\n";
echo "var podkategoria = '".$podkategoria."';\n";

// utworzenie tablicy kategorii
echo 'var kategorie = new Array();'."\n";

// utworzrzenie tablic podkategori
for($i=0;$i<$ile;$i++)
  echo 'kategorie['.$i.'] = new Array();'."\n";

// wypełnienie tablic
for($i=0;$i<$ile;$i++){
  $podkategorie = explode('|',trim($plik[$i]));
  $ilosc1 = count($podkategorie);
  for($k=0;$k<$ilosc1;$k++)
      echo 'kategorie['.$i.']['.$k.']="'.trim($podkategorie[$k]).'";'."\n";
  }
echo '</script>';
?>

<script language="javascript">

function SetKategorie(){
var KS = document.getElementById('kategoria');
for (i=0;i<kategorie.length;i++)
   KS.options[KS.length] = new Option(kategorie[i][0],kategorie[i][0]);
KS.value = kategoria;
}

function SetPodKategorie(){
var PKS = document.getElementById('podkategoria');
var wybrana = document.getElementById('kategoria').selectedIndex;
for (i=PKS.length-1;i>=0;i--) PKS.remove(i);
PKS.options[0] = new Option('Wszystkie','Wszystkie');
for (i=1;i<kategorie[wybrana].length;i++)
   PKS.options[PKS.length] = new Option(kategorie[wybrana][i],kategorie[wybrana][i]);
}

</script>


  1. <SELECT name="kategoria" id="kategoria" style="width:150px" onChange="SetPodKategorie()"></SELECT>
  2. <SELECT name="podkategoria" id="podkategoria" style="width:150px;"></SELECT>


Ten post edytował php programmer 4.11.2005, 10:30:30
Go to the top of the page
+Quote Post
revyag
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Zwykły javascript.
Kod
<script type="text/javascript">
function ins() {
    var models = document.getElementById("model");
    var opttypes = document.getElementById("types");
    var types =
        new Array(
            new Array("typ1m1","typ2m1","typ3m1"),
            new Array("typ1m2","typ2m2","typ3m2"),
            new Array("typ1m3","typ2m3","typ3m3"),
            new Array("typ1m4","typ2m4","typ3m4")
        );
    for(var i = 0; i < types[models.selectedIndex].length; i++) {
        opttypes.options[i] = new Option(types[models.selectedIndex][i],types[models.selectedIndex][i]);
    }
}
</script>

  1. <select name="model" id="model" onchange="ins()">
  2. <option value="model1">model1</option>
  3. <option value="model2">model2</option>
  4. <option value="model3">model3</option>
  5. <option value="model4">model4</option>
  6. </select><br /><br />
  7.  
  8. <select name="types" id="types">
  9. </select>

Tworzone opcje selecta mają takie samo value i text który jest widoczny jako opcja.
Go to the top of the page
+Quote Post
AxZx
post
Post #6





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

Ostrzeżenie: (0%)
-----


Cytat(revyag @ 2005-11-04 09:26:37)
Tworzone opcje selecta mają takie samo value i text który jest widoczny jako opcja.

to nie dobrze
bo to jest wtedy 2 razy wiecej roboty, tzn wiecej zapytan do bazy
ja potrzebuje id tej podbranzy pobrane z bazy

czyli ma byc <option value="ID">podbranza</option>

a pozatym cos jest nie tak, bo jak w pierwszej branzy beda podbranze to powinny sie wyswietlic a sie nie wyswietlaja, dopiero po odswiezeniu

Ten post edytował AxZx 4.11.2005, 21:11:18
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 21:51