Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Formularz
lik
post 25.08.2004, 12:18:26
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 25.08.2004, 12:28:42
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)


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
lik
post 25.08.2004, 13:52:37
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 25.08.2004, 14:14:01
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`.


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
lik
post 25.08.2004, 14:34:26
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 25.08.2004, 14:51:53
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 25.08.2004, 15:43:19
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 25.08.2004, 22:01:31
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 25.08.2004, 22:37:50
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


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
adism
post 26.08.2004, 14:48:39
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 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 27.08.2004, 10:27:02
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 04:55