Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] Dynamiczne formularze
Forum PHP.pl > Forum > Przedszkole
bobo168
Witam mam problem z dynamicznymi formurzami. Chodzi o pola select mianowicie gdy 1 pole ma wartość np. 2 to wtedy 2 pole typu select zmienia sobie wartości które są przypisane do wartości 2 w 1 polu select. Jak to zrobić? Znalazłem taki kod:
Kod
<html>
<head>
<style type="text/css">
div { width: 100px; height: 100px; margin: 0 0 2em 0; }
#k1 {border: 1px solid #000; display: block; background: #000; color: #FFF;}
#k2 {border: 1px solid #000; display: none; background: #FFF; color: #000;}
</style>
<script type="text/javascript">
function wybierz() {
oSelect = document.getElementById("wybor");
if(oSelect.value == "pole1") {
document.getElementById("k1").style.display = "block";
document.getElementById("k2").style.display = "none";
} else {
document.getElementById("k1").style.display = "none";
document.getElementById("k2").style.display = "block";
}
}
</script>
</head>
<body>
<div id="k1">RAZ</div>
<div id="k2">DWA</div>
<select id="wybor" onchange="wybierz()">
<option value="pole1">Pole 1</option>
<option value="pole2">Pole 2</option>
</select>
<select id="wybor" onchange="wybierz()">
<option value="pole1">Pole 1</option>
<option value="pole2">Pole 2</option>
</select>
</body>
</html>

Ale nie bardzo wiem jak to wyedytować aby działało jak chce. Bo z JS nie jeste mocny :/
Z góry thx za pomoc.
Kwazi
Spróbuj tak:
Formularzowi i selectom nadaj jakieś nazwy np:
  1. <?php
  2. <form name=jakis>
  3. <select name=pierwszy onChange=zmien()>
  4. <option value=pole1>Pole 1</option>
  5. <option value=pole2>Pole 2</option>
  6. </select>
  7. <select name=drugi>
  8. <option value=pole1>Pole 1</option>
  9. <option value=pole2>Pole 2</option>
  10. </select>
  11. </form>
  12. ?>


A następnie napisz funkcję, która będzie zmieniać wartość drugiego selecta na n-tą opcję w zależności od wyboru n-tej opcji w pierwszym formularzu!
Idea jest taka: Przeleć wszystkie opcje w selekcie pierwszym i znajdź zaznaczoną, pobierz jej numer, a następnie w selekcie drugim przypisz opcji o tym numerze wartosć selected na true.
Mniej więcej coś takoego:

  1. <?php
  2. <script language=JavaScript>
  3. function zmien()
  4. {
  5. for (i=0;i<document.jakis['pierwszy'].length;i++)
  6. if (document.jakis['pierwszy'].options[i].selected==true) break; 
  7.  
  8.  document.jakis['drugi'].options[i].selected=true;
  9. }
  10. </script>
  11. ?>


Powinno działać, ale nie testowałem tego, powodzenia!
en3o
a czy ten skrypt da sie przerobic tak aby w jednym polu bylo
np: lista wojewodztwa a w drugim lista misat. i po wybraniu konkretnego wojewodztwa w drugmi wyswietlala sie lista miast z tego wojewodztwa?? bo kombinuje cos takiego i nie nic nie wychodzi..... sad.gif
pozdrawiam snitch.gif
free
Widze ze mamy taki sam problem:
W ponizszym kodzie mam kod odpowiedzialny za wyswietlanie kategorii i podkategorii.
Służy mi on w edycji ogloszeń. Jak sprawic by po zmianie w polu select katagorii AUTOMATYCZNIE zmieniły sie podkategorie.
Kod php

  1. <?php
  2. <select name="kategoria"><option value="$id_kategoria" selected> $kategoria </option> ";
  3. $wynik=mysql_query("SELECT * FROM kategoria WHERE nazwa not in ('$kategoria')");
  4. for ($i=0; $i<@mysql_num_rows($wynik); $i++){
  5. $wiersz=mysql_fetch_array($wynik);
  6. $nazwa=$wiersz['nazwa'];
  7. echo "<option value="".$wiersz["id_kategoria"].""> $nazwa </option> " ;
  8. }
  9.  echo"</select>";
  10.  
  11. /////////Wyswietla podaketegorie///////////////
  12. $pyt1="SELECT podkat_id, id_podkat, nazwapod, id FROM ogloszenia o, podkat p
  13.  WHERE o.podkat_id=p.id_podkat AND id='$id'";
  14. $wyk1 = mysql_query($pyt1);
  15. $rzad1 = mysql_fetch_array($wyk1);
  16. $podkat = $rzad1['nazwapod'];
  17. $id_podkat = $rzad1['id_podkat'];
  18.  
  19. echo "<select name="podkat"><option value=" $id_podkat" selected> $podkat</option> ";
  20.  
  21. $wynik2=mysql_query("SELECT * FROM podkat WHERE kat_id='$id_kategoria' AND
  22.  nazwapod not in ('$podkat')");
  23.  for ($i=0; $i<@mysql_num_rows($wynik2); $i++)  {
  24.  $wiersz2=mysql_fetch_array($wynik2);
  25.  $nazwapod=$wiersz2['nazwapod'];
  26.  $id_podkat = $wiersz2['id_podkat'];
  27.  
  28. echo "<option value="$id_podkat"> $nazwapod </option> " ;  }
  29. echo"</select>";
  30. /////////Koniec podkategorii////////////////
  31. ?>


KWAZI jakbyś to połączył z powyższym kodem ?
HomerWells
Modyfikuje obecnie galerie zdjęć. Wcześniej zdjęcia były "luzem". Obecnie będą trzamane w tematycznych galeriach a nazwy galerii w "nadkategoriach" w związku z czym mam pytanie. Jeżeli użykownik będzie chciał dodać zdjęcię będzie najpierw musiał:
1) Wybrać nadkategorie
2) Wybrac galerie
3) Dopiero teraz wysłać zdjęcie na serwer
Po wybraniu nadkategorii należałoby wysłać odpowiednie zapytanie do serwera aby pobrać odpowiedni zbiór galerii. Doszedłem do wniosku, że to jest trochę marnotrawienie czasu. Moim zdaniem lepszym rozwiazaniem będzie pobranie przy pierwszym wejsciu na stronę formularza wszystkich nazw nadkategorii oraz galerii a resztą zajmie się javascript.
Czy to jest dobre podejśćie? Łącznie zbiór "nadkategorii" i "galerii" nie będzie pewnie liczył więcej niż 100 pozycji.
en3o
znalazlem rozwiazanie do swojego problemu. pod tym adresem Cut & Paste znajduje sie rozwiazanie problemu biggrin.gif .
moze w czyms pomoze.
pozdrawiam
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.