Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Aktualizowanie kilku <select>'ów
donpablo
post
Post #1





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 28.02.2005

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


Witam.
Problem jest taki że mam ok 6 <select>'ów. Do każdego będzie dodane w pętli php ok 10 nazwisk oraz jako <option value> identyfikator osoby o tym nazwisku. Chodzi teraz o to by wybranie danego nazwiska w pierwszym <select>-cie wymusiło zaktualizowanie kolejnych pięciu tak by tam pokazywało się już nie 10 nazwisk - tylko 9 (bez tego które wybrano w pierwszym). Następnie wybór nazwiska w selekcie 2 sprawiło iż w kolejnych czterech będzie już 8 nazwisk itp. W php nie da się tego zrobić bez wysyłania formularza do serwera, więc kombinowanie tego typu byłoby uciązliwe i czasochłonne. Opcją jest zatem JS. Jak to zrobić? Pytanie raczej skierowane do osób znajacych JS znacznie lepiej niż podstawowo
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
celbarowicz
post
Post #2





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

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


[/html]

teraz kod ulepszony
  1. <html>
  2. <head>
  3. <script language="javascript" type="text/javascript">
  4. function zmiana(a,k){var a;var i;var b;var n; var i2;var ix; var z;var k;
  5. z='s'+k;
  6.  
  7. n=document.getElementById(z).length;
  8.  
  9. ix=0;
  10. for(i=1;i<n;i++){b='s'+eval(k+1);
  11.  
  12. if(a==document.getElementById(z).options[i].value){}else{ix=ix+1;
  13. document.getElementById(b).options[ix].value=document.getElementById(z).options[i].value;
  14. document.getElementById(b).options[ix].text=document.getElementById(z).options[i].text; }
  15. }
  16. document.getElementById(b).length=n-1;;
  17. }
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25. </script>
  26. <head>
  27. <body>
  28. <form>
  29. <select name="s1" id="s1" onChange="zmiana(this.value,1);" >
  30. <option value="--wybierz--">--wybierz--</option>
  31. <option value="Kowalski">Kowalski</option>
  32. <option value="Powalski">Powalski</option>
  33. <option value="Cowalski">Cowalski</option>
  34. <option value="Dowalski">Dowalski</option>
  35. <option value="Łowalski">Łowalski</option>
  36. <option value="Mowalski">Mowalski</option>
  37. <option value="Nowalski">Nowalski</option>
  38. <option value="Oowalski">Oowalski</option>
  39. <option value="Rowalski">Rowalski</option>
  40. <option value="Towalski">Towalski</option>
  41. </select>
  42. <select name="s2" id="s2" onChange="zmiana(this.value,2);" >
  43. <option value="--wybierz--">--wybierz--</option>
  44. <?php for($i=1;$i<11;$i++) { echo '<option value='.$i.'>'.$i.'</option>'; } ?>
  45.  
  46. </select>
  47.  
  48.  
  49. <select name="s3" id="s3" onChange="zmiana(this.value,3);">
  50. <option value="--wybierz--">--wybierz--</option>
  51. <?php for($i=1;$i<10;$i++) { echo '<option value='.$i.'>'.$i.'</option>'; } ?>
  52. </select>
  53.  
  54. <select name="s4" id="s4" onChange="zmiana(this.value,4);">
  55. <option value="--wybierz--">--wybierz--</option>
  56.  
  57. <?php for($i=1;$i<10;$i++) { echo '<option value='.$i.'>'.$i.'</option>'; } ?>
  58. </select>
  59. <select name="s5" id="s5" onChange="zmiana(this.value,5);">
  60. <option value="--wybierz--">--wybierz--</option>
  61. <?php for($i=1;$i<10;$i++) { echo '<option value='.$i.'>'.$i.'</option>'; } ?>
  62. </select>
  63.  
  64. <select name="s6" id="s6">
  65. <option value="--wybierz--">--wybierz--</option>
  66. <?php for($i=1;$i<10;$i++) { echo '<option value='.$i.'>'.$i.'</option>'; } ?>
  67. </select>
  68.  
  69.  
  70.  
  71.  
  72. </form>
  73. </div>
  74.  
  75.  
  76. <br>
  77. </body>
  78. </html>
  79.  
  80.  

Wszystkie selekty używając odpowiedniej pętli można zapisać jako "jeden"-będzie mniej kodu.

Ten post edytował celbarowicz 21.01.2011, 16:25:51
Go to the top of the page
+Quote Post

Posty w temacie


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: 7.10.2025 - 09:54