Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> 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
 
Start new topic
Odpowiedzi
adism
post
Post #2





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

Posty w temacie
- lik   Formularz   25.08.2004, 12:18:26
- - kicaj   To zrobic mozna w JS (bedzie lepiej, bez przeladow...   25.08.2004, 12:28:42
- - lik   co prawda nabardziej interesowalo by mnie rozwiaza...   25.08.2004, 13:52:37
- - kicaj   W php nie widze zadnego problemu (po za nieciekawy...   25.08.2004, 14:14:01
- - lik   a jak wygladaloby to w js ?   25.08.2004, 14:34:26
- - adism   zobacz sobie: http://forum.php.pl/index.php?showto...   25.08.2004, 14:51:53
- - lik   probowalem ten skrypt rozbudowac do 3 list, nieste...   25.08.2004, 15:43:19
- - adism   oto kod dla 3 list: Kod<form name="menu...   25.08.2004, 22:01:31
- - FiDO   Skrypty -> php   25.08.2004, 22:37:50
- - adism   RE: Formularz   26.08.2004, 14:48:39
- - lik   BARDZO dziekuje za pomoc. oby jak najwiecej takich...   27.08.2004, 10:27:02


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: 14.10.2025 - 16:51