Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Formularz
lik
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 25.08.2004

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


Witam. Jak zrobic formularz ktory np.: ma 3 pola
1.pole; wybiera sie z listy np gatunek ksiazki (kryminal...)
2.pole; (po wybraniu gatunku) na liscie dostepni sa tylko autorzy ktorzy pisza w tym gatunku
3.pole; po wybraniu autora na liscie dostepne sa tylko ksiazki tego autora

chodzi glownie o to aby zawartosc kolejnych pol formularza byla zalezna od wczesniej wybranych.
Go to the top of the page
+Quote Post
kicaj
post
Post #2





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


To zrobic mozna w JS (bedzie lepiej, bez przeladowowania strony)
Go to the top of the page
+Quote Post
lik
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 25.08.2004

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


co prawda nabardziej interesowalo by mnie rozwiazanie w php ale kazda propozycja bedzie mile widziana.
Go to the top of the page
+Quote Post
kicaj
post
Post #4





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


W php nie widze zadnego problemu (po za nieciekawym przeladowywaniem strony).
Wybierasz `gatunek`, potem a `autorach` wyswietlasz wszystkich ktorzy posiadaja `id_gatunku`, no i na koncu wszystkie ksiazki spelniajace `id_autora`.
Go to the top of the page
+Quote Post
lik
post
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 25.08.2004

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


a jak wygladaloby to w js ?
Go to the top of the page
+Quote Post
adism
post
Post #6





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 24.08.2004

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


zobacz sobie: http://forum.php.pl/index.php?showtopic=20159

mozna to jeszcze polaczyc z php zeby np. ladowalo liste z bazy danych

Ten post edytował adism 25.08.2004, 14:54:33
Go to the top of the page
+Quote Post
lik
post
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 25.08.2004

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


probowalem ten skrypt rozbudowac do 3 list, niestety bez znojomosci js nic z tego nie bedzie...potrzebuje zrobic to dla 3 list i zeby pola w listach byly pobierane z bazy jesli ktos ma jakies sugestie to bede BARDZO wdzieczny.

Ten post edytował lik 25.08.2004, 21:22:24
Go to the top of the page
+Quote Post
adism
post
Post #8





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 24.08.2004

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


oto kod dla 3 list:

Kod
<form name="menu">
<p><select name="menu1" size="1" onChange="buduj2(document.menu.menu1.options.selectedIndex)">
</select>
<select name="menu2" size="1"  onChange="buduj3(document.menu.menu1.options.selectedIndex, document.menu.menu2.options.selectedIndex)">
</select>
<select name="menu3" size="1">
</select>
</p>
</form>
<script>
<!--

pozycje1 = new Array()
pozycje1[0] = new Option("pozycja 1","value")
pozycje1[1] = new Option("pozycja 2","value")
pozycje1[2] = new Option("pozycja 3","value")


pozycje2 = new Array()
pozycje2[0] = new Array()
pozycje2[0][0] = new Option("pozycja 1 1","value")
pozycje2[0][1] = new Option("pozycja 1 2","value")
pozycje2[0][2] = new Option("pozycja 1 3","value")
pozycje2[1] = new Array()
pozycje2[1][0] = new Option("pozycja 2 1","value")
pozycje2[1][1] = new Option("pozycja 2 2","value")
pozycje2[1][2] = new Option("pozycja 2 3","value")
pozycje2[2] = new Array()
pozycje2[2][0] = new Option("pozycja 3 1","value")
pozycje2[2][1] = new Option("pozycja 3 2","value")
pozycje2[2][2] = new Option("pozycja 3 3","value")


pozycje3 = new Array()

pozycje3[0] = new Array()
pozycje3[0][0] = new Array()
pozycje3[0][0][0] = new Option("pozycja 1 1 1","value")
pozycje3[0][0][1] = new Option("pozycja 1 1 2","value")
pozycje3[0][0][2] = new Option("pozycja 1 1 3","value")
pozycje3[0][1] = new Array()
pozycje3[0][1][0] = new Option("pozycja 1 2 1","value")
pozycje3[0][1][1] = new Option("pozycja 1 2 2","value")
pozycje3[0][1][2] = new Option("pozycja 1 2 3","value")
pozycje3[0][2] = new Array()
pozycje3[0][2][0] = new Option("pozycja 1 3 1","value")
pozycje3[0][2][1] = new Option("pozycja 1 3 2","value")
pozycje3[0][2][2] = new Option("pozycja 1 3 3","value")

pozycje3[1] = new Array()
pozycje3[1][0] = new Array()
pozycje3[1][0][0] = new Option("pozycja 2 1 1","value")
pozycje3[1][0][1] = new Option("pozycja 2 1 2","value")
pozycje3[1][0][2] = new Option("pozycja 2 1 3","value")
pozycje3[1][1] = new Array()
pozycje3[1][1][0] = new Option("pozycja 2 2 1","value")
pozycje3[1][1][1] = new Option("pozycja 2 2 2","value")
pozycje3[1][1][2] = new Option("pozycja 2 2 3","value")
pozycje3[1][2] = new Array()
pozycje3[1][2][0] = new Option("pozycja 2 3 1","value")
pozycje3[1][2][1] = new Option("pozycja 2 3 2","value")
pozycje3[1][2][2] = new Option("pozycja 2 3 3","value")

pozycje3[2] = new Array()
pozycje3[2][0] = new Array()
pozycje3[2][0][0] = new Option("pozycja 3 1 1","value")
pozycje3[2][0][1] = new Option("pozycja 3 1 2","value")
pozycje3[2][0][2] = new Option("pozycja 3 1 3","value")
pozycje3[2][1] = new Array()
pozycje3[2][1][0] = new Option("pozycja 3 2 1","value")
pozycje3[2][1][1] = new Option("pozycja 3 2 2","value")
pozycje3[2][1][2] = new Option("pozycja 3 2 3","value")
pozycje3[2][2] = new Array()
pozycje3[2][2][0] = new Option("pozycja 3 3 1","value")
pozycje3[2][2][1] = new Option("pozycja 3 3 2","value")
pozycje3[2][2][2] = new Option("pozycja 3 3 3","value")

function buduj3(id1, id2) {
for (m = document.menu.menu3.options.length-1; m>0; m--) {
  document.menu.menu3.options[m] = null;
}
for (i = 0; i<pozycje3[id1][id2].length; i++) {
  document.menu.menu3.options[i] = pozycje3[id1][id2][i];
}
document.menu.menu3.options[0].selected=true
}

function buduj2(id1) {
for (m = document.menu.menu2.options.length-1; m>0; m--) {
  document.menu.menu2.options[m] = null;
}
for (i = 0; i<pozycje2[id1].length; i++) {
  document.menu.menu2.options[i] = pozycje2[id1][i];
}
document.menu.menu2.options[0].selected=true
buduj3(document.menu.menu1.options.selectedIndex, 0)
}

function buduj1() {
for (m = document.menu.menu1.options.length-1; m>0; m--) {
  document.menu.menu1.options[m] = null;
}
for (i = 0; i<pozycje1.length; i++) {
  document.menu.menu1.options[i] = pozycje1[i];
}
document.menu.menu1.options[0].selected=true
buduj2(0)
}


buduj1();
//-->
</script>


troche tego duzo, ale czy nie oto ci chodzilo

na wersje php musisz troche poczekac bo z glowy ci tego nie napisze

p.s. jutro powinna byc gotowa wersja php z mysql

Ten post edytował adism 26.08.2004, 14:17:33
Go to the top of the page
+Quote Post
FiDO
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Skrypty -> php
Go to the top of the page
+Quote Post
adism
post
Post #10





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 24.08.2004

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


juz pracuje nad tym skryptem

p.s. a w php->skrypty php to jest kod dla jednego menu jakby co

EDIT
------------------------------------------------------------------------------
ok juz gotowy

  1. <?
  2. function dbConnect() {
  3. $dbHost = &#092;"localhost\";
  4. $dbUser = &#092;"root\";
  5. $dbPass = &#092;"\";
  6. $dbName = &#092;"menusy\";
  7.  
  8.     $link = @mysql_pconnect($dbHost, $dbUser, $dbPass);
  9.  
  10.     if (!$link) {
  11.         fail(&#092;"Nie można ustanowić połączenia z serwerem bazy danych\");
  12.     }
  13.  
  14.     if (!@mysql_select_db($dbName)) {
  15.         fail(&#092;"Nie można znaleźć bazy danych $dbName\");
  16.     }
  17.     
  18.     return $link;
  19. }
  20. $link = dbConnect();
  21. $tablice = &#092;"\";
  22.  
  23. // pierwsze menu
  24. $query1 = &#092;"SELECT * FROM menu1\";
  25. $result1 = mysql_query($query1);
  26. $count1 = mysql_num_rows($result1);
  27. $tablice .= &#092;"pozycje1 = new Array();\";
  28. for ($i1=0; $i1<$count1; $i1++) {
  29.  $wiersz1 = mysql_fetch_array($result1);
  30.  $tablice .= &#092;"pozycje1[$i1] = new Option('\".$wiersz1[\"text\"].\"','\".$wiersz1[\"value\"].\"');\";
  31. }
  32. // end
  33.  
  34. // drugie menu
  35. $tablice .= &#092;"pozycje2 = new Array();\";
  36. for ($i1=0; $i1<$count1; $i1++) {
  37.  $tablice .= &#092;"pozycje2[$i1] = new Array();\";
  38.  $parent = &#092;"$i1+1\";
  39.  $query2 = &#092;"SELECT * FROM menu2 WHERE parent_id = $parent\";
  40.  $result2 = mysql_query($query2);
  41.  $count2 = mysql_num_rows($result2);
  42.  for ($i2=0; $i2<$count2; $i2++) {
  43.   $wiersz2 = mysql_fetch_array($result2);
  44.   $tablice .= &#092;"pozycje2[$i1][$i2] = new Option('\".$wiersz2[\"text\"].\"','\".$wiersz2[\"value\"].\"');\";
  45.  }
  46. }
  47. // end
  48.  
  49. // trzecie menu
  50. $tablice .= &#092;"pozycje3 = new Array();\";
  51. for ($i1=0; $i1<$count1; $i1++) {
  52.  $tablice .= &#092;"pozycje3[$i1] = new Array();\";
  53.  $parent2 = &#092;"$i1+1\";
  54.  $query2 = &#092;"SELECT * FROM menu2 WHERE parent_id = $parent2\";
  55.  $result2 = mysql_query($query2);
  56.  $count2 = mysql_num_rows($result2);
  57.  for ($i2=0; $i2<$count2; $i2++) {
  58.   $wiersz2 = mysql_fetch_array($result2);
  59.   $tablice .= &#092;"pozycje3[$i1][$i2] = new Array();\";
  60.   $parent3 = $wiersz2['id'];
  61.   $query3 = &#092;"SELECT * FROM menu3 WHERE parent_id = $parent3\";
  62.   $result3 = mysql_query($query3);
  63.   $count3 = mysql_num_rows($result3);
  64.   for ($i3=0; $i3<$count3; $i3++) {
  65.    $wiersz3 = mysql_fetch_array($result3);
  66.    $tablice .= &#092;"pozycje3[$i1][$i2][$i3] = new Option('\".$wiersz3[\"text\"].\"','\".$wiersz3[\"value\"].\"');\";
  67.   }
  68.  }
  69. }
  70. // end
  71.  
  72. ?>
  73. <html>
  74. <body>
  75. <form name=\"menu\">
  76. <p><select name=\"menu1\" size=\"1\" onChange=\"buduj2(document.menu.menu1.options.selectedIndex)\">
  77. </select>
  78. <select name=\"menu2\" size=\"1\"  onChange=\"buduj3(document.menu.menu1.options.selectedIndex, document.menu.menu2.options.sele
    c
  79. edIndex)\">
  80. </select>
  81. <select name=\"menu3\" size=\"1\">
  82. </select>
  83. </p>
  84. </form>
  85. <script>
  86. <!--
  87. <?
  88. echo $tablice;
  89. ?>
  90.  
  91. function buduj3(id1, id2) {
  92.  for (m = document.menu.menu3.options.length-1; m>0; m--) {
  93.   document.menu.menu3.options[m] = null;
  94.  }
  95.  for (i = 0; i<pozycje3[id1][id2].length; i++) {
  96.   document.menu.menu3.options[i] = pozycje3[id1][id2][i];
  97.  }
  98.  document.menu.menu3.options[0].selected=true;
  99. }
  100.  
  101. function buduj2(id1) {
  102.  for (m = document.menu.menu2.options.length-1; m>0; m--) {
  103.   document.menu.menu2.options[m] = null;
  104.  }
  105.  for (i = 0; i<pozycje2[id1].length; i++) {
  106.   document.menu.menu2.options[i] = pozycje2[id1][i];
  107.  }
  108.  document.menu.menu2.options[0].selected=true;
  109.  buduj3(document.menu.menu1.options.selectedIndex, 0);
  110. }
  111.  
  112. function buduj1() {
  113.  for (m = document.menu.menu1.options.length-1; m>0; m--) {
  114.   document.menu.menu1.options[m] = null;
  115.  }
  116.  for (i = 0; i<pozycje1.length; i++) {
  117.   document.menu.menu1.options[i] = pozycje1[i];
  118.  }
  119.  document.menu.menu1.options[0].selected=true;
  120.  buduj2(0);
  121. }
  122.  
  123.  
  124. buduj1();
  125. //-->
  126. </script>
  127. </body>
  128. </html>


a oto plik sql bazy danych (przyklad):
  1. USE menusy;
  2.  
  3.  
  4. #
  5. # Table structure for table 'menu1'
  6. #
  7.  
  8. CREATE TABLE menu1 (
  9. id int(3) UNSIGNED NOT NULL AUTO_INCREMENT,
  10. text char(255) DEFAULT '0',
  11. value char(255) DEFAULT 'value',
  12. PRIMARY KEY (id)
  13. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  14.  
  15.  
  16.  
  17. #
  18. # Dumping data for table 'menu1'
  19. #
  20.  
  21. INSERT INTO menu1 VALUES("1", "Ksiazki", "value");
  22. INSERT INTO menu1 VALUES("2", "CD / DVD", "cd");
  23. INSERT INTO menu1 VALUES("3", "Znaczki", "znaczki");
  24.  
  25.  
  26. #
  27. # Table structure for table 'menu2'
  28. #
  29.  
  30. CREATE TABLE menu2 (
  31. id int(3) UNSIGNED NOT NULL AUTO_INCREMENT,
  32. text char(255) DEFAULT '0',
  33. value char(255) DEFAULT 'value',
  34. parent_id int(3) DEFAULT '0',
  35. PRIMARY KEY (id)
  36. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  37.  
  38.  
  39.  
  40. #
  41. # Dumping data for table 'menu2'
  42. #
  43.  
  44. INSERT INTO menu2 VALUES("1", "ksiazki 1", "value", "1");
  45. INSERT INTO menu2 VALUES("2", "ksiazki 2", "value", "1");
  46. INSERT INTO menu2 VALUES("3", "ksiazki 3", "value", "1");
  47. INSERT INTO menu2 VALUES("4", "ksiazki 4", "value", "1");
  48. INSERT INTO menu2 VALUES("5", "cd 1", "value", "2");
  49. INSERT INTO menu2 VALUES("6", "cd 2", "value", "2");
  50. INSERT INTO menu2 VALUES("7", "cd 3", "value", "2");
  51. INSERT INTO menu2 VALUES("8", "znaczki 1", "value", "3");
  52. INSERT INTO menu2 VALUES("9", "znaczki 2", "value", "3");
  53.  
  54.  
  55. #
  56. # Table structure for table 'menu3'
  57. #
  58.  
  59. CREATE TABLE menu3 (
  60. id int(3) UNSIGNED NOT NULL AUTO_INCREMENT,
  61. text char(255) DEFAULT '0',
  62. value char(255) DEFAULT 'value',
  63. parent_id int(3) DEFAULT '0',
  64. PRIMARY KEY (id)
  65. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  66.  
  67.  
  68.  
  69. #
  70. # Dumping data for table 'menu3'
  71. #
  72.  
  73. INSERT INTO menu3 VALUES("1", "ksiazki 1 1", "value", "1");
  74. INSERT INTO menu3 VALUES("2", "ksiazki 1 2", "value", "1");
  75. INSERT INTO menu3 VALUES("3", "ksiazki 1 3", "value", "1");
  76. INSERT INTO menu3 VALUES("4", "ksiazki 2 1", "value", "2");
  77. INSERT INTO menu3 VALUES("5", "ksiazki 2 2", "value", "2");
  78. INSERT INTO menu3 VALUES("6", "ksiazki 3 1", "value", "3");
  79. INSERT INTO menu3 VALUES("7", "ksiazki 3 2", "value", "3");
  80. INSERT INTO menu3 VALUES("8", "ksiazki 4 1", "value", "4");
  81. INSERT INTO menu3 VALUES("9", "ksiazki 4 2", "value", "4");
  82. INSERT INTO menu3 VALUES("10", "cd 1 1", "value", "5");
  83. INSERT INTO menu3 VALUES("11", "cd 1 2", "value", "5");
  84. INSERT INTO menu3 VALUES("12", "cd 2 1", "value", "6");
  85. INSERT INTO menu3 VALUES("13", "cd 2 2", "value", "6");
  86. INSERT INTO menu3 VALUES("14", "cd 3 1", "value", "7");
  87. INSERT INTO menu3 VALUES("15", "cd 3 2", "value", "7");
  88. INSERT INTO menu3 VALUES("16", "znaczki 1 1", "value", "8");
  89. INSERT INTO menu3 VALUES("17", "znaczki 1 2", "value", "8");
  90. INSERT INTO menu3 VALUES("18", "znaczki 2 1", "value", "9");
  91. INSERT INTO menu3 VALUES("19", "znaczki 2 2", "value", "9");


oczywiscie aby uzyc tego przykladowego pliku musisz najpierw stworzyc baze "menusy"
uffff
troche sie nameczylem
ale efekt jest... efektowny (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
p.s. polecam program MySQL Front

Ten post edytował adism 26.08.2004, 20:18:02
Go to the top of the page
+Quote Post
lik
post
Post #11





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 25.08.2004

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


BARDZO dziekuje za pomoc. oby jak najwiecej takich ludzi odwiedzalo to forum.
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: 23.08.2025 - 04:27