Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> <SELECT> + wywolanie funkcji
cornholio666
post
Post #1





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


Witam!

mam takie cos:
  1. <SELECT NAME=\"kategory_1\">
  2. <?php 
  3. $query = &#092;"SELECT DISTINCT kategory FROM kategory\";
  4. $result = mysql_query($query);
  5. if(!$result)
  6. {
  7. echo &#092;"nie\";
  8. }
  9. while($rekord = mysql_fetch_array($result))
  10. {
  11.  echo &#092;"<OPTION value=\"$rekord[0]\">$rekord[0]</OPTION>\";
  12. }
  13.  ?>
  14.  </SELECT>

Wybieram jakas kategorie i chcialbym zeby wyswietlilo mi obok jeszcze jedna liste rozwijalna ktora spelniala by cos takiego
  1. <SELECT NAME=\"pod\">
  2. <?php 
  3. $query = &#092;"SELECT podkategory FROM kategory WHERE kategory='kategoria wybrana z listy'\";
  4. $result = mysql_query($query);
  5. if(!$result)
  6. {
  7. echo &#092;"nie\";
  8. }
  9. while($rekord = mysql_fetch_array($result))
  10. {
  11.  echo &#092;"<OPTION value=\"$rekord[0]\">$rekord[0]</OPTION>\";
  12. }
  13.  ?>
  14.  </SELECT>

chcialbym zeby sie to odbylo po stronie przegladari. Prosze o pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
crash
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Bez przeładowanie nie da się tego wykonać.
A tak w drugiej liście ustaw warunek SQL na WHERE kategory = $_POST['kategory_1']
Sorry, że w działe JS wtrącam pomoc w php, ale no inaczej się nie da.

Ten post edytował crashu 2.01.2005, 22:15:24
Go to the top of the page
+Quote Post
cornholio666
post
Post #3





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


no to mnie troche zmartwiles. no ale nic dzieki
Go to the top of the page
+Quote Post
bregovic
post
Post #4





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


To się da zrobić - tylko zależy od ilości rekordów w tabelach...
Jeśli nie masz ich strasznie dużo to weź popatrz na skrypt ze strony http://webmaster.helion.pl/kurshtml/skrypt/doubmenu.htm - i wygeneruj w php wszystkie możliwe tablice.

Jeśli natomiast bardzo chcesz żeby ta druga lista była generowana na bieżąco, zainteresuj się XmlHttpRequest - ale IMO to zbyt dużo roboty jak na twoją potrzebę.
Go to the top of the page
+Quote Post
cornholio666
post
Post #5





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


zrobilem tak:
  1. <?php
  2. include &#092;"./nowy.inc\";
  3.  
  4. //polaczenie z baza
  5.  
  6. $link_id = db_connect();
  7.  if(!$link_id)
  8.  {
  9.  error_massage('nie mogę się polaczyc z baza');
  10.  }
  11.  
  12. //$ile zawiera ilosc \"nazw\" kategorii
  13.  
  14.  $query = &#092;"SELECT DISTINCT kategory FROM kategory\";
  15.  $result = mysql_query($query);
  16.  
  17.  $i = 0;
  18.  while($rekord = mysql_fetch_array($result))
  19.  { 
  20. $array[$i] = $rekord['kategory'];
  21. $i++;
  22.  }
  23.  $ile = count($array);
  24.  
  25. // tworzymy tablice wielowymiarowa wyglada ona tak:
  26. //group[0][0] = podkategoria
  27. //group[0][1] = podkategoria
  28.  
  29. //group[0][2] = jw
  30.  
  31. //group[1][0] = jw
  32. //group[1][1] = jw
  33.  
  34.  for($i = 0; $i < $ile ; $i++)
  35.  {
  36.  $query = &#092;"SELECT kategory, podkategory FROM kategory WHERE kategory = '$array[$i]' \";
  37.  $result = mysql_query($query);
  38.  
  39.  $j = 0;
  40.  while($rekord = mysql_fetch_array($result))
  41.  {
  42. $group[$i][$j] = $rekord['podkategory'];
  43. echo $group[$i][$j]. &#092;"<br>\";
  44. $j++;
  45.  }
  46.  
  47.  
  48.  }
  49.  
  50. ?>


Wyglada to mnie wiecej tak jak mi pokazales w tym skrypcie
Kod
group[0][0]=new Option("Website Abstraction","http://wsabstract.com")
group[0][1]=new Option("News.com","http://www.news.com")

group[0][2]=new Option("Wired News","http://www.wired.com")

group[1][0]=new Option("CNN","http://www.cnn.com")
group[1][1]=new Option("ABC News","http://www.abcnews.com")

group[2][0]=new Option("Hotbot","http://www.hotbot.com")
group[2][1]=new Option("Infoseek","http://www.infoseek.com")
group[2][2]=new Option("Excite","http://www.excite.com")
group[2][3]=new Option("Lycos","http://www.lycos.com")

Drugi argument mi nie potrzebny (adres www) wystarczy jak sie bedize pojawiala sama podkategoria
Teraz jak to przerobic tak zeby to chodzilo mozesz mi pomoc?
Go to the top of the page
+Quote Post
bregovic
post
Post #6





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


Próbuj sam to napisać - jak ci się nie uda - to wieczorem coś wyskrobię.
Go to the top of the page
+Quote Post
cornholio666
post
Post #7





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


ok zrobilem tak:

  1. //tutaj wypisuje po nacisnieciu submita wartosci zmiennych list
  2.  
  3.  <?php
  4. echo &#092;"example \". $example. \"<br>\";
  5. echo &#092;"stage \". $stage2;
  6.  ?>
  7.  
  8.  //wyswietlamy pierwsza liste czyli wszystkie dostepen kategorie
  9.  
  10.  <form name=\"doublecombo\" action\"on.php\">
  11.  <p><select name=\"example\" size=\"1\" onChange=\"redirect(this.options.selectedIndex)\">
  12.  <?php
  13.  include &#092;"./nowy.inc\";
  14.  
  15.  //polaczenie z baza
  16.  
  17.  $link_id = db_connect();
  18.  
  19. //$ile zawiera ilosc \"nazw\" kategorii
  20.  
  21.  $query = &#092;"SELECT DISTINCT kategory FROM kategory\";
  22.  $result = mysql_query($query);
  23.  
  24.  $i = 0;
  25.  while($rekord = mysql_fetch_array($result))
  26.  {
  27. echo &#092;"<option>\". $rekord['kategory']. \"</option>\";
  28. $array[$i] = $rekord['kategory'];
  29. $i++;
  30.  }
  31.  
  32.  echo &#092;" </select>\";
  33.  
  34.  
  35.  $ile = count($array);
  36.  
  37.  //druga lista na poczatku wyswietla podkategorie pierwszej kategorii
  38.  // tak jak w skrypcie który mi \"podales\"
  39.  
  40.  echo &#092;"<select name=\"stage2\" size=\"1\">\";
  41.  
  42.  
  43.  $query = &#092;"SELECT kategory, podkategory FROM kategory WHERE kategory = '$array[0]' \";
  44.  $result = mysql_query($query);
  45.  while($rekord = mysql_fetch_array($result))
  46.  {
  47.  echo &#092;"<option>\" . $rekord['podkategory']. \"</option>\";
  48.  } 
  49.  echo &#092;"</p></select>\"; 
  50.  ?>
  51.  <input type=\"submit\" name=\"test\" value=\"Wczytaj!\">
  52.  //tu się ten skrypt...
  53.  
  54.  <script>
  55. <!--
  56.  
  57. /*
  58. Double Combo Script Credit
  59. By Website Abstraction (www.wsabstract.com)
  60. Over 200+ free JavaScripts here!
  61. */
  62.  
  63. var groups=document.doublecombo.example.options.length
  64. var group=new Array(groups)
  65. for (i=0; i<groups; i++)
  66. group[i]=new Array()
  67.  
  68. //i tutaj wygenerowalem kod js tak jak w skrypcie
  69.  
  70. <?php
  71.  
  72.  for($i = 0; $i < $ile ; $i++)
  73.  {
  74.  $query = &#092;"SELECT kategory, podkategory FROM kategory WHERE kategory = '$array[$i]' \";
  75.  $result = mysql_query($query);
  76.  
  77.  $j = 0;
  78.  while($rekord = mysql_fetch_array($result))
  79.  { 
  80. $group[$i][$j] = $rekord['podkategory'];
  81.  
  82. //tutaj caly pies pogrzebany> generuje to np: group[0][0]=new Option(\"cos\")
  83.  
  84. echo &#092;"group[\" .$i . \"][\" . $j .\"] = new Option(\" \" . $group[$i][$j]. \" \")n\"; 
  85. $j++;
  86.  }
  87.  
  88.  
  89.  }
  90. ?>
  91. var temp=document.doublecombo.stage2
  92.  
  93. function redirect(x){
  94. for (m=temp.options.length-1;m>0;m--)
  95. temp.options[m]=null
  96. for (i=0;i<group[x].length;i++){
  97. temp.options[i]=new Option(group[x][i].text,group[x][i].value)
  98. }
  99. temp.options[0].selected=true
  100. }
  101.  
  102. function go(){
  103. location=temp.options[temp.selectedIndex].value
  104. }
  105. //-->
  106. </script>


wszystko dzilala ladnie tylko przy wypisywaniu (na samej gorze) zmienych list,
wyswietla mi tylko
  1. <?php
  2. echo &#092;"example \". $example. \"<br>\";
  3. ?>
a
  1. <?php
  2. echo &#092;"stage \". $stage2;
  3. ?>
nie wypisuje. Zauwazylem ze przu drugiej liscie musze na nia kliknac i zaznaczyc wtedy wyswietla... Dlaczego?


PS: chyba to troche zawile...
Go to the top of the page
+Quote Post
bregovic
post
Post #8





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


No więc co właściwie teraz jest problemem? Bo nie do końca rozumiem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
cornholio666
post
Post #9





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


powyzszy kod

  1. <?php
  2. $query = &#092;"SELECT kategory, podkategory FROM kategory WHERE kategory = '$array[0]' \";
  3.  $result = mysql_query($query);
  4.  while($rekord = mysql_fetch_array($result))
  5.  {
  6.  echo &#092;"<option>\" . $rekord['podkategory']. \"</option>\";
  7.  }
  8.  
  9.  echo &#092;"</p></select>\"; 
  10.  ?>


uzupelniam o
  1. <?php
  2. <input type=&#092;"submit\" name=\"test\" value=\"Wczytaj!\">
  3. ?>


strona sie przeladowuje i chce wyswietlic pola ktore zaznaczylem
wiec na samej gorze wyswietlam co w pierwszej liscie zaznaczylem (tutaj mi dobrze wyswietla)
  1. <?php
  2. //<select name=\"example\" size=\"1\" onChange=\"redirect(this.options.selectedIndex)\">
  3.  echo &#092;"example \". $example. \"<br>\";
  4. ?>


nizej chce wyswietlic co zaznaczylem na drugiej liscie, tej ktora jest generowana przez js. (tutaj mi nie wyswietla nic)
  1. <?php
  2. //echo \"<select name=\"stage2\" size=\"1\">\";
  3.  echo &#092;"stage \". $stage2. \"<br>\";
  4. ?>


moze sie niejasno wyrazam ... chodzi i o zmienna ktora przechowuje to co wybralem z drugiej listy bo chyba nie jest to $stage2
Go to the top of the page
+Quote Post
bregovic
post
Post #10





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


Nie wiem w czym problem szczerze mówiąc. Jeśli na coś wpadnę nie omieszkam napisać.
Go to the top of the page
+Quote Post
cornholio666
post
Post #11





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


powiedzmy plik wybierz.html
Kod
<form action="cos.php">
<select name="example">
<option>gruszka</option>
<option>jablko</option>
<option>banan</option>
</select>
<input type="submit" value="wyslij">
</form>


plik cos.php
wybieram (w wybierz.html) "banan"
  1. <?php
  2. echo $example;
  3. ?>
  4. //zaznaczylem pole \"banan\" wiec wypisze \"banan\"


teraz:

mam w moim skrypcie przedstawionym w poprzednich postach js generuje mi rozwijalna liste (tak jak w wybierz.html). po nacisnieciu "wyslij" chce wypisac to co zaznaczylem tak jak w cos.php zaznaczylem banan wyswietlilo banan. Wypisuje:

  1. <?php
  2. echo $stage2;
  3. ?>


no i nic mi nie wypisuje, zmienna jest pusta. Teraz jak mam zrobic zeby mi wypisal to co znznaczylem w rozwijalnej liscie (chodzi o ta druga liste generowana przez js)

(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
crash
post
Post #12





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Nie zapomnij o ustawieniu metody przesyłania formularza na POST (method="post"), a odebrane zmienne ustawiaj odpowiednio:
  1. <?php
  2. $example = $_POST['example'];
  3. ?>
Go to the top of the page
+Quote Post
cornholio666
post
Post #13





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


Ok jakos sie uporalem z tym problemem nie wiem jak ale jakos poszlo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował cornholio666 4.01.2005, 18:00:37
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: 25.08.2025 - 04:54