Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]formularz html i przekazanie zmiennych do php
Forum PHP.pl > Forum > Przedszkole
nowy2700
Witam,

Chciałbym prosić o jakiś przykład formularza, który zawiera dwa pola select i po kliknięciu submit przekazuje dwie zmienne do php. Nie wiem czy dobrze to tłumaczę - przykład mam mniej więcej taki:

  1.  
  2. <form action='".url::Base()."index.php/website/search' method='post'>
  3. <label>Szukaj:</label>
  4. <select name='type' style='visibility:hidden;'>
  5. <option value='none'>Wybierz</option>
  6. <option value='people' selected='selected'>Osób</option>";
  7.  
  8. echo"
  9. </select>
  10. <label>Płeć:</label>
  11. <select name='search' > ///potrzebuje tą zmienną jako np. $value1
  12. <option>Mężczyzna</option>
  13. <option>Kobieta</option>
  14. </select>
  15. <label>Województwo:</label>
  16. <select name='search' > ///potrzebuje tą zmienną jako np. $value2
  17. <option>Dolnośląskie</option>
  18. <option>Kujawsko-Pomorskie</option>
  19. <option>Lubelskie</option>
  20. <option>Lubuskie</option>
  21. <option>Łódzkie</option>
  22. <option>Małopolskie</option>
  23. <option>Mazowieckie</option>
  24. <option>Opolskie</option>
  25. <option>Podkarpackie</option>
  26. <option>Podlaskie</option>
  27. <option>Pomorskie</option>
  28. <option>Śląskie</option>
  29. <option>Świętokrzyskie</option>
  30. <option>Warmińsko-Mazurskie</option>
  31. <option>Wielkopolskie</option>
  32. <option>Zachodniopomorskie</option>
  33. <option>Zagranica</option>
  34. </select>
  35. </select>
  36. <input type='submit' value='szukaj' class='submit' />
  37. </form>
  38.  
  39.  
  40.  
  41.  


i teraz tak - <select name='search'> z tego co widzę, odnosi się do funkcji w pliku website.php (w zaden sposob nie zwiazane chyba z /website/search.php):


  1.  
  2. public function search($type='',$value1='',$value2=''){
  3. echo $value1; /// nic nie zwraca
  4. //echo " - value1";
  5. echo $value2; //zwraca to co wybiorę czyli np. dolnośląskie
  6. //echo " - value2";
  7. echo $type; //zwraca people
  8.  
  9. }
  10.  
  11.  


ale o ile widzi zmienna $type,$value2 , to zmiennej $value1 nie jestem w stanie wyłapać bo jest nadpisywana przez $value2 jak sądzę. W jaki sposób przesłać z takiego formularza dwie zmienne. Skrypt oparty jest na frameworku kohana jesli to ma znaczenie.
Rysh
select musi mieć inną nazwę:

Kod
name="nazwa_zmiennej"
nowy2700
Cytat(Rysh @ 21.03.2012, 21:02:10 ) *
select musi mieć inną nazwę:

Kod
name="nazwa_zmiennej"


Kiedy nadaje inną nazwę niż "search" to nie przekazuje mi nic
Rysh
Cytat(nowy2700 @ 21.03.2012, 21:04:18 ) *
Kiedy nadaje inną nazwę niż "search" to nie przekazuje mi nic

Jak to nie przekazuje? Walnij sobie poniższy kod i zobacz czy przekazuje czy nie.
  1. echo "<pre>";
  2. print_r($_POST);
  3. echo "</pre>";
nowy2700
Cytat(Rysh @ 21.03.2012, 21:06:43 ) *
Jak to nie przekazuje? Walnij sobie poniższy kod i zobacz czy przekazuje czy nie.
  1. echo "<pre>";
  2. print_r($_POST);
  3. echo "</pre>";



wyrzuciło mi coś takiego :

Array
(
)
Rysh
Cytat(nowy2700 @ 21.03.2012, 21:10:46 ) *
wyrzuciło mi coś takiego :

Array
(
)

Przed chwilą sprawdzałem i działa. Masz takie zmienne: $_POST['type'], $_POST['plec'], $_POST['wojewodztwo'].
  1. <form method='post'>
  2. <label>Szukaj:</label>
  3. <select name='type' style='visibility:hidden;'>
  4. <option value='none'>Wybierz</option>
  5. <option value='people' selected='selected'>Osób</option>";
  6.  
  7. echo"
  8. </select>
  9. <label>Płeć:</label>
  10. <select name='plec' > ///potrzebuje tą zmienną jako np. $value1
  11. <option>Mężczyzna</option>
  12. <option>Kobieta</option>
  13. </select>
  14. <label>Województwo:</label>
  15. <select name='wojewodztwo' >
  16. <option>Dolnośląskie</option>
  17. <option>Kujawsko-Pomorskie</option>
  18. <option>Lubelskie</option>
  19. <option>Lubuskie</option>
  20. <option>Łódzkie</option>
  21. <option>Małopolskie</option>
  22. <option>Mazowieckie</option>
  23. <option>Opolskie</option>
  24. <option>Podkarpackie</option>
  25. <option>Podlaskie</option>
  26. <option>Pomorskie</option>
  27. <option>Śląskie</option>
  28. <option>Świętokrzyskie</option>
  29. <option>Warmińsko-Mazurskie</option>
  30. <option>Wielkopolskie</option>
  31. <option>Zachodniopomorskie</option>
  32. <option>Zagranica</option>
  33. </select>
  34. <input type='submit' value='szukaj' class='submit' />
  35. </form>
  36. <?php
  37. echo "<pre>";
  38. print_r($_POST);
  39. echo "</pre>";
  40. ?>
nowy2700
to w takim razie nie łapie czegoś innego.

<form action='".url::Base()."index.php/website/search' method='post'> - czyli który plik php? powinien odebrać mi tą zmienną .
Rysh
Cytat(nowy2700 @ 21.03.2012, 21:20:46 ) *
to w takim razie nie łapie czegoś innego.

<form action='".url::Base()."index.php/website/search' method='post'> - czyli który plik php? powinien odebrać mi tą zmienną .

Formularz masz w pliku A. Przesyłasz dane do pliku B. Więc logiczne, że odbierasz dane w B.
nowy2700
Cytat(Rysh @ 21.03.2012, 21:24:14 ) *
Formularz masz w pliku A. Przesyłasz dane do pliku B. Więc logiczne, że odbierasz dane w B.



no ok wiec zakladam ze to plik search.php w tym katalogu do ktorego jest sciezka.

a wiec w pliku search.php po wpisaniu tego:

echo '<pre>';
print_r($_POST);
echo '</pre>';

zwraca mi to:

echo '
';
print_r(Array);
echo '
';

Rysh
Wstawiłeś to pomiędzy znacznikami:
  1. <?php
  2. //tu ?
  3. ?>

?
nowy2700
Cytat(Rysh @ 21.03.2012, 21:32:58 ) *
Wstawiłeś to pomiędzy znacznikami:
  1. <?php
  2. //tu ?
  3. ?>

?


tak.
Rysh
Nie wiem co Ty tam robisz. W każdym razie u mnie działa tak jak powinno.
http://rysh.tk/forum/nowy.php
nowy2700
Cytat(Rysh @ 21.03.2012, 21:41:20 ) *
Nie wiem co Ty tam robisz. W każdym razie u mnie działa tak jak powinno.
http://rysh.tk/forum/nowy.php



eh, to nic nie wiem stane w tym miejscu pewnie. dzieki za probe pomocy
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.