Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] formularz
Forum PHP.pl > Forum > Przedszkole
kononowicz
jak zrobić takie cos:

mam formularz szukający towary z bazy MySQL:

  1. <?php
  2. print ' <form action="szukaj_klient.php" method="post">
  3. <br>wpisz towar <br>
  4.  <input type="text" name="towary" id="towary" value="">
  5.  <br>wybierz dział <br>
  6. <input type="text" name="dzial" id="kod" value="">
  7. <br>zakres ceny <br> od:<br>
  8. <input type="text" name="cena_od" id="cena_od" value="">
  9. <br>do:<br>
  10. <input type="text" name="cena_do" id="cena_do" value="">
  11. <br>
  12. <select name="ID_DZIALY">
  13. <option value="1">dział budowlany
  14.  <option value="2">farby
  15.  <option value="3">dział hydrauliczny
  16.  <option value="4">dział metalowy
  17. <option value="5">dział sanitarny
  18. <option value="6">inne
  19.  </select>
  20. <input type="submit" name="znajdz" value="znajdz">
  21. <input type="reset" value="wyczyść">
  22. </SELECT>
  23. </form> ';
  24. ?>


Chciałbym ,żeby szukanie względem ceny było opcjonalne: czyli zeby był jakis input radio albo checkbox i gdy go wdusze to pojawia mi sie automatycznie miejsce do wpisania zakresu cen. jak to wykonać?questionmark.gif?
ghash
Mogę powiedzieć tylko tyle, że takie coś (czyli klik na radio i wtedy możliwe wpisanie ceny) jest do zrobienia w javie... php jest bardziej statyczne w tym momencie... Musisz odświeżyć stronę, abyś pojawiły się dodatkowe opcje...

Natomiast możesz zrobić inaczej...
Wyświetlić pole do wpisania ceny od i ceny do..
Następnie sprawdzić czy cena jest wprowadzona. Jeżeli tak, to wtedy dodać do SELECT odpowiednie zapytanie...

Czyli:

  1. <?php
  2. if(isset($_GET['cena_od']) and $_GET['cena_od']<>"") { 
  3. $cena_od = $_GET['cena_od'];
  4. $pyt_cena_od = " AND cena_od>='$cena_od'";
  5. } 
  6. else { $pyt_cena_od ="";}
  7. ?>


Następnie do zapytania SELECT należy dodać dodatkowe klauzulę:

  1. SELECT * FROM tabela WHERE inne_warunki
  2. $pyt_cena_od


Dzieki takiemu rozwiązaniu do SELECT będzie dodana klauzula o cenie tylko i wyłącznie jeżeli cena od będzie przesłana w formularzu i cena_od będzie różna od niczego ("" - czyli będzie coś wpisane)
Jestem także początkujący, ale mnie ten system działa:) Choć faktycznie trochę trzeba napisać kodu:)

Da się to pewnie zrobić z mniejszą ilością zmiennych i gdyby ktoś podpowiedział ci lepsze rozwiązanie sam bym z niego skorzystałsmile.gifsmile.gif
kononowicz
mój skrytpt wyglada tak więc nie ważne ile wpisze danych i tak bedzie gut ale to ma byc bardziej pod klienta wiec zalezy mi żeby była dość przyjemna obsługa. java jest mi obca, wiec jesli ktos potrafi to prosze o rade...

  1. <?php
  2. print ' <form action="szukaj_klient.php" method="post">
  3. <br>wpisz towar <br>
  4.  <input type="text" name="towary" id="towary" value="">
  5. <br>zakres ceny <br> od:<br>
  6. <input type="text" name="cena_od" id="cena_od" value="">
  7. <br>do:<br>
  8. <input type="text" name="cena_do" id="cena_do" value="">
  9. <br>
  10. <br>wybierz dział <br> <select name="id_dzialy" id="id_dzialy">
  11. <option value="#"> >>wybierz dział
  12. <option value="1">dział budowlany
  13.  <option value="2">farby
  14.  <option value="3">dział hydrauliczny
  15.  <option value="4">dział metalowy
  16. <option value="5">dział sanitarny
  17. <option value="6">inne
  18.  </select>
  19. <input type="submit" name="znajdz" value="znajdz">
  20. <input type="reset" value="wyczyść">
  21. </SELECT>
  22. </form> ';
  23.  
  24.  
  25. if(isset($_POST['znajdz']))
  26. {
  27. $towary = $_POST['towary'];
  28. $kod = $_POST['kod'];
  29. $wh = array();
  30. if (!empty($_POST['cena_od']))
  31.  $wh[] = 'CENA >= '.$_POST['cena_od'];
  32. if (!empty($_POST['cena_do']))
  33.  $wh[] = 'CENA <= '.$_POST['cena_do'];
  34. if (!empty($_POST['towary']))
  35.  $wh[] = "TOWARY LIKE '%$towary%'";
  36. if (!empty($_POST['id_dzialy']))
  37.  $wh[] = "ID_DZIALY = '$id_dzialy'";
  38.  
  39. if (!empty($wh))
  40.  $where = 'where '.implode(' and ', $wh);
  41. else
  42.  $where = '';
  43. $zapytanie = 'SELECT * FROM `towary` '.$where;
  44. $wynik = mysql_query($zapytanie);
  45. echo "<table cellpadding="1" border=1>";
  46. echo "<tr>";
  47. echo "<td> towary </td>";
  48. echo "<td> kod </td>";
  49. echo "<td> cena </td>";
  50. echo "<tr>";
  51. while( $wiersz = mysql_fetch_array($wynik) )
  52. {
  53. echo "<tr>";
  54. echo "<td>".$wiersz['TOWARY']."</td>";
  55. echo "<td>".$wiersz['KOD']."</td>";
  56. echo "<td>".$wiersz['CENA']."</td>";
  57. echo "<td>".$wiersz['ID_DZIALY']."</td>";
  58. echo "<tr>";
  59. }
  60. echo "</table>";
  61. mysql_close($connection);
  62. }
  63. ?>


znalazłem coś na ten temat ale nie działa u mnie: tutaj


tak wyglada mój kod:

  1. <html>
  2. <head>
  3. <title>baza mysql - wyszukiwarka dla klienta</title>
  4. <META HTTP-EQUIV="Content-Type" CONTENT="text/html" charset="iso-8859-2">
  5. <META http-equiv="Content-Language" content="pl">
  6. <script language="JavaScript">
  7. function show()
  8. {
  9. obj=document.getElementById('cena_od');
  10. objCheck=document.getElementById('check_cena');
  11. if (objCheck.checked)
  12. obj.style.display="";
  13. else
  14. obj.style.display="none";
  15. }
  16. </script>
  17. </head>
  18. <body>
  19.  
  20.  
  21. <?php
  22.  
  23. //tu jest skrypt łączący z bazą
  24.  
  25.  
  26.  print ' <form action="szukaj_klient.php" method="post">
  27. <br>wpisz towar <br>
  28.  <input type="text" name="towary" id="towary" value="">
  29. <br>zakres ceny <br><input type="checkbox" name="check_cena" > od:<br>
  30. <input type="text" style="show()" name="cena_od" id="cena_od" value="">
  31. <br>do:<br>
  32. <input type="text" name="cena_do" id="cena_do" value="">
  33. <br>
  34. <br>wybierz dział <br> <select name="id_dzialy" id="id_dzialy">
  35. <option value="#"> >>wybierz dział
  36. <option value="1">dział budowlany
  37.  <option value="2">farby
  38.  <option value="3">dział hydrauliczny
  39.  <option value="4">dział metalowy
  40. <option value="5">dział sanitarny
  41. <option value="6">inne
  42.  </select>
  43.  
  44.  <input type="hidden" name="pokazID" id="pokazID" value="">
  45.  
  46. <input type="submit" name="znajdz" value="znajdz">
  47. <input type="reset" value="wyczyść">
  48. </SELECT>
  49. </form> ';
  50.  
  51.  
  52. if(isset($_POST['znajdz']))
  53. {
  54. $towary = $_POST['towary'];
  55. $kod = $_POST['kod'];
  56. $wh = array();
  57. if (!empty($_POST['cena_od']))
  58.  $wh[] = 'CENA >= '.$_POST['cena_od'];
  59. if (!empty($_POST['cena_do']))
  60.  $wh[] = 'CENA <= '.$_POST['cena_do'];
  61. if (!empty($_POST['towary']))
  62.  $wh[] = "TOWARY LIKE '%$towary%'";
  63. if (!empty($_POST['id_dzialy']))
  64.  $wh[] = "ID_DZIALY = '$id_dzialy'";
  65. if ($_POST['pokazID'])
  66.  $wh[] = "`towary`.`ID_DZIALY` = `dzialy`.`ID`";
  67. if (!empty($wh))
  68.  $where = 'where '.implode(' and ', $wh);
  69. else
  70.  $where = '';
  71. $zapytanie = 'SELECT * FROM `towary`,`dzialy` '.$where;
  72. $wynik = mysql_query($zapytanie);
  73. echo "<table cellpadding="1" border=1>";
  74. echo "<tr>";
  75. echo "<td> towary </td>";
  76. echo "<td> kod </td>";
  77. echo "<td> cena </td>";
  78. echo "<tr>";
  79. while( $wiersz = mysql_fetch_array($wynik) )
  80. {
  81. echo "<tr>";
  82. echo "<td>".$wiersz['TOWARY']."</td>";
  83. echo "<td>".$wiersz['KOD']."</td>";
  84. echo "<td>".$wiersz['CENA']."</td>";
  85. echo "<td>".$wiersz['ID']."</td>";
  86. echo "<tr>";
  87. }
  88. echo "</table>";
  89. mysql_close($connection);
  90. }
  91. ?>
  92. </body>
  93. </html>


na razie chciałem zeby chociaz jedno znikało i pojawiało się ... tak tylko na próbe ale nawet to nie działa
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.