Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> PHP+mysql+pole select+formularz
majkel07
post 1.06.2011, 22:22:47
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.06.2011

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


Witam
jestem początkujący także prosze o wyrozumiałość
chce zbudowac skrypt, który pobierze dane z bazy Mysql wyświetli je w polu select, a następnie po wyborze z pola select jakiejś opcji ten wybór zostanie przekazany formularzem do innego pliku php i tam np. wyświetlony.
To było od strony teoretycznej od praktycznej wyglada to w ten sposób w bazie danych mam tabele z klientami, których cały czas przybywa, wyświetlam wszystkich jako opcje w polu select,po dokonaniu wyboru jednego klienta przekazuje go formularzem do innego pliku php np. zamówienia i wyswietlam jego pozstałe dane.
Oto co udało mi się stworzyć:

  1. $query = "select imiepacjenta, nazwiskopacjenta From pacjent order by 'id' DESC";
  2. $result = mysql_query($query);
  3. $num_results = mysql_num_rows($result);
  4. while($wybor = mysql_fetch_array($result)) {
  5. $dane .='<option value="'.$wybor['id'].'">'.$wybor['imiepacjenta'].' '.$wybor['nazwiskopacjenta'].'</option>';
  6. }
  7.  
  8.  
  9. echo '<form action="kartawys.php" method="post">';
  10. echo'<select name="pacjent" align="center">
  11. <option>Wybierz pacjenta '.$dane.'</option>
  12. </select><br/>';
  13. echo '<input type="submit" value="wybor">';
  14. echo '</form>';
  15. echo '<br></br>';


nie wiem czy trzeba tutaj użyć JS czy wystarczy selected?
z góry thx za wszelkie podpowiedzi
Go to the top of the page
+Quote Post
sadistic_son
post 1.06.2011, 22:27:21
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Pochrzaniłeś coś w tym kodzie. Jak już to tak:
  1. $query = "select imiepacjenta, nazwiskopacjenta From pacjent order by 'id' DESC";
  2. $result = mysql_query($query);
  3. $num_results = mysql_num_rows($result);
  4. if($num_results>0){
  5. echo '<form action="kartawys.php" method="post">';
  6. echo'<select name="pacjent" align="center">';
  7.  
  8. while($wybor = mysql_fetch_array($result)) {
  9. echo'<option value="'.$wybor['id'].'">'.$wybor['imiepacjenta'].' '.$wybor['nazwiskopacjenta'].'</option>';
  10. }
  11. echo'</select><br/>';
  12. echo '<input type="submit" name="wyslij" value="wybor">';
  13. echo '</form>';
  14. echo '<br></br>';
  15. }else{
  16. echo 'brak wynikow';}


Ten post edytował sadistic_son 1.06.2011, 22:28:14


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
majkel07
post 2.06.2011, 19:47:35
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.06.2011

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


dzieki sadistic_son za podpowiedź
ale to dalej nie rozwiązuje mojego głównego problemu czyli wyświetlenie nazwiska i imienia pacjenta którego sie wybierze z pola select czekam na dalsze propozycje.

zgodnie ze wskazówkami kolegi poprawilem swoj kod:
  1. $query = "select imiepacjenta, nazwiskopacjenta From pacjent order by 'id' DESC";
  2. $result = mysql_query($query);
  3. $num_results = mysql_num_rows($result);
  4. if($num_results>0){
  5. echo '<form action="kartawys.php" method="post">';
  6. echo'<select name="pacjent" align="center">';
  7. while($wybor = mysql_fetch_array($result)) {
  8. $dane.='<option value="'.$wybor['id'].'">'.$wybor['imiepacjenta'].' '.$wybor['nazwiskopacjenta'].'</option>';}
  9. echo '<option>Wybierz pacjenta '.$dane.'</option>';
  10. echo'</select><br/>';
  11. echo '<input type="submit" name="wyslij" value="wybor">';
  12. echo '</form>';
  13. echo '<br></br>';}
  14. else{echo 'brak wynikow';}

Go to the top of the page
+Quote Post
aeaeae
post 2.06.2011, 20:17:44
Post #4





Grupa: Zarejestrowani
Postów: 117
Pomógł: 23
Dołączył: 5.03.2011

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


Pokażę mechanizm. W jednym pliku dajesz:
  1. <form action="kartawys.php" method="post">
  2. <select name="pacjent">
  3. <option>Nowak</option>
  4. <option>Kowalski</option>
  5. </select>
  6. <input type="submit" value="wybor">
  7. </form>


W drugim, który musi nazywać się tak jak podasz w action pierwszego (zatem kartawys.php):
  1. <?php
  2. echo $_POST['pacjent'];
  3. ?>


Do tego musisz dołożyć zabezpieczenia.
Go to the top of the page
+Quote Post
majkel07
post 2.06.2011, 20:27:11
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.06.2011

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


dzieki aeaeae
akurat ten mechanizm kumam
tylko ze ja nie mam stałych opcji w select tylko są zmienne i pobierane z bazy danych
mi chodzi o przesłanie formularzem wyboru z pola select gdzie opcje są z bazy mysql
nie wiem czy dobrze opisuje mój problem jakby co poprawiajcie
Go to the top of the page
+Quote Post
aeaeae
post 2.06.2011, 20:36:00
Post #6





Grupa: Zarejestrowani
Postów: 117
Pomógł: 23
Dołączył: 5.03.2011

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


W value option przesyłasz id klienta z tego co widzę ... Obsłuż to id w pliku, do którego przechodzisz - masz id więc pobierasz z bazy dane dla tego id ...
Go to the top of the page
+Quote Post
majkel07
post 2.06.2011, 20:42:26
Post #7





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.06.2011

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


No tak przesylam id klienta tylko skąd będe wiedział ze to jest id klienta zaznaczonego
Go to the top of the page
+Quote Post
sadistic_son
post 2.06.2011, 20:45:16
Post #8





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Co Ty za bzdury tam porobiłeś? Niech Ci wyjaśnię jak będzie wyglądać Twój select z tym co tam zrobiłeś:
  1. <select name="pacjent">
  2. <option>Wybierz pacjenta <option value="1">Jan Kowalski</option><option value="2">Zenek Nowak</option></option></select>
Czyli kompletna BZDURA exclamation.gif Wcześniej poprawiłem Ci to tak jak należy exclamation.gif Więc czemu tego nie zastosowałeś questionmark.gif
Wynikiem pętli ma być coś takiego, tylko dla różnych pacjentów:
  1. <option value="45">Zbignie Wihajster</option>
A Ty tylko dopisujesz do zmiennej $data kolejne optiony i potem je wszystkie wrzucasz do kolejnego ale bez value. To nie ma prawa dzialać. Przeanalizuj mój kod i zastosuj poprawki do tego dziwactwa które stworzyłeś.

Dalej... musisz zmodyfikować zapytanie w tym kodzie. Nie masz tam zapytania o id a jednak się od niego odwołujesz wstawiając je do value w option. Tak więc ma być:
  1. $query = "select id, imiepacjenta, nazwiskopacjenta From pacjent order by 'id' DESC";
W następnym pliku czyli w Twoim przypadku kartawys.php musisz zczytać to otrzymane z formularza id i zapytać o nie w bazie:
  1. if(isset($_POST['wyslij'])){ //sprawdza czy w ogole kliknieto w przycisk wysylania
  2. if(isset($_POST['pacjent']) && $_POST['pacjent']!='Wybierz pacjenta';){ //sprawdza czy wybrano coś z selecta i czy nie jest to wybor domyslny
  3. $select=intval($_POST['pacjent']); //intval tworzy liczbę z tego co było w $_POST['pacjent']. To zabezpieczenie jakby ktoś chciał wysłać coś innego. A to ma być liczba bo tym polem przekazywane jest id - czyli liczba.
  4. $result=mysql_query("SELECT imie, nazwisko FROM pacjent WHERE id=$select LIMIIT 1");
  5. $num=mysql_num_rows($result);
  6. if($num>0){ echo'Wybrany pacjent to ';
  7. while($p=mysql_fetch_array($result){
  8. echo "$p[imie] $p[nazwisko]";
  9. }
  10. }else{ echo 'nie ma takiego pacjenta';}
  11. }else{echo 'prosze wybrac pacjenta z pola select';}
  12. }


Ten post edytował sadistic_son 2.06.2011, 20:51:06


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
aeaeae
post 2.06.2011, 20:52:08
Post #9





Grupa: Zarejestrowani
Postów: 117
Pomógł: 23
Dołączył: 5.03.2011

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


Może tak: php GENERUJE kod html. Zastosowanie takiego skryptu:
  1. <form action="kartawys.php" method="post">
  2. <select name="pacjent">
  3. <?php
  4. for($id=1;$id<=12;$id++)
  5. echo '<option value="'.$id.'">Nazwisko'.$id.'</option>';
  6. ?>
  7. </select>
  8. <input type="submit" value="wybor">
  9. </form>


da taki html:
  1. <form action="kartawys.php" method="post">
  2. <select name="pacjent">
  3. <option value="1">Nazwisko1</option>
  4. <option value="2">Nazwisko2</option>
  5. <option value="3">Nazwisko3</option>
  6. <option value="4">Nazwisko4</option>
  7. <option value="5">Nazwisko5</option>
  8. <option value="6">Nazwisko6</option>
  9. <option value="7">Nazwisko7</option>
  10. <option value="8">Nazwisko8</option>
  11. <option value="9">Nazwisko9</option>
  12. <option value="10">Nazwisko10</option>
  13. <option value="11">Nazwisko11</option>
  14. <option value="12">Nazwisko12</option>
  15. </select>
  16. <input type="submit" value="wybor">
  17. </form>


Więc to będzie właściwe id. Ważne jest żeby zrozumieć, że: PHP GENERUJE POPRZEZ M.IN. ECHO KOD HTML exclamation.gif!
Go to the top of the page
+Quote Post
majkel07
post 5.06.2011, 07:57:56
Post #10





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.06.2011

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


dzieki sadistic_son
bardzo mi pomogłes
jednak nie chce działac cos nie tak z kartawys.php
zamiast id mam nrpacjenta w bazie danych
plik kartawys.php wyglada tak:
  1.  
  2. if(isset($_POST['wyslij']))
  3. { //sprawdza czy w ogole kliknieto w przycisk wysylania2.
  4. if(isset($_POST['pacjent']) ;{ //sprawdza czy wybrano coś z selecta i czy nie jest to wybor domyslny
  5. $select=intval($_POST['pacjent']); //intval tworzy liczbę z tego co było w $_POST['pacjent']. To zabezpieczenie jakby ktoś chciał wysłać coś innego. A to ma być liczba bo tym polem przekazywane jest id - czyli liczba.4.
  6. $connection = @mysql_connect('localhost', 'root', 'root')
  7. or die('Brak połączenia z serwerem MySQL');
  8. $db = @mysql_select_db('gabinet', $connection)
  9. or die('Nie mogę połączyć się z bazą danych');
  10.  
  11. $result=mysql_query("SELECT imiepacjenta, nazwiskopacjenta FROM pacjent WHERE nrpacjenta=$select LIMIIT 1");
  12. $num=mysql_num_rows($result);
  13. if($num>0){ echo'Wybrany pacjent to ';
  14. while($p=mysql_fetch_array($result){
  15. echo "$p[imiepacjenta] $p[nazwiskopacjenta]";
  16. }
  17. }else{ echo 'nie ma takiego pacjenta';}
  18. }else{echo 'prosze wybrac pacjenta z pola select';}}
  19.  
  20.  


formularz
  1.  
  2. $query = "select nrpacjenta, imiepacjenta, nazwiskopacjenta From pacjent order by 'nrpacjenta' DESC";
  3. $result = mysql_query($query);
  4. $num_results = mysql_num_rows($result);
  5. if($num_results>0){
  6. echo '<form action="kartawys.php" method="post">';
  7. echo'<select name="pacjent" align="center">';
  8. while($wybor = mysql_fetch_array($result)) {
  9. echo'<option value="'.$wybor['nrpacjenta'].'">'.$wybor['imiepacjenta'].' '.$wybor['nazwiskopacjenta'].'</option>';
  10. }
  11. echo'</select><br/>';
  12. echo '<input type="submit" name="wyslij" value="wyslij">';
  13. echo '</form>';
  14. echo '<br></br>';}
  15. else{
  16. echo 'brak wynikow';}
  17.  

jakbys jeszcze mógl rzucic okiem wielkie dzieki

sadistic_son
prosze rzuć okiem co zrobiłem nie tak, bo nie działa!!!!

czy ktos mi moze pomóc questionmark.gif

tak tez nie działa sad.gif
  1. if(isset($_POST['wyslij']))
  2. { //sprawdza czy w ogole kliknieto w przycisk wysylania2.
  3. if(isset($_POST['pacjent']);)
  4. { //sprawdza czy wybrano coś z selecta i czy nie jest to wybor domyslny
  5. $select= intval($_POST['pacjent']); //intval tworzy liczbę z tego co było w $_POST['pacjent']. To zabezpieczenie jakby ktoś chciał wysłać coś innego. A to ma być liczba bo tym polem przekazywane jest id - czyli liczba.4.
  6.  
  7.  
  8. $connection = @mysql_connect('localhost', 'root', 'root')
  9. or die('Brak połączenia z serwerem MySQL');
  10. $db = @mysql_select_db('gabinet', $connection)
  11. or die('Nie mogę połączyć się z bazą danych');
  12.  
  13.  
  14.  
  15. $result=mysql_query("SELECT imiepacjenta, nazwiskopacjenta FROM pacjent WHERE nrpacjenta=".$select."");
  16. $num=mysql_num_rows($result);
  17. if($num>0){ echo "Wybrany pacjent to ";
  18. while($p=mysql_fetch_array($result){
  19. echo stripslashes($p["imiepacjenta"] $p["nazwiskopacjenta"]);
  20. }
  21. }else{ echo "nie ma takiego pacjenta";}
  22. }else{echo "prosze wybrac pacjenta z pola select";}}


po wielu dniach ciezkiego boju i dzieki nieocenionej pomocy sadistic_son
udało się
oto ostateczny kod pliku kartawys.php
  1. if(isset($_POST['wyslij']))
  2. { //sprawdza czy w ogole kliknieto w przycisk wysylania2.
  3. if(isset($_POST['pacjent']))
  4. { //sprawdza czy wybrano coś z selecta i czy nie jest to wybor domyslny
  5. $select= intval($_POST['pacjent']); //intval tworzy liczbę z tego co było w $_POST['pacjent']. To zabezpieczenie jakby ktoś chciał wysłać coś innego. A to ma być liczba bo tym polem przekazywane jest id - czyli liczba.4.
  6.  
  7.  
  8. $connection = @mysql_connect('localhost', 'root', 'root')
  9. or die('Brak połączenia z serwerem MySQL');
  10. $db = @mysql_select_db('gabinet', $connection)
  11. or die('Nie mogę połączyć się z bazą danych');
  12.  
  13.  
  14.  
  15. $result=mysql_query("SELECT imiepacjenta, nazwiskopacjenta FROM pacjent WHERE nrpacjenta=".$select."");
  16. $num=mysql_num_rows($result);
  17. if($num>0){ echo "Wybrany pacjent to ";
  18. while($p=mysql_fetch_array($result)){
  19. echo stripslashes($p["imiepacjenta"]);
  20. echo stripslashes ($p["nazwiskopacjenta"]);
  21. }
  22. }else{ echo "nie ma takiego pacjenta";}
  23. }else{echo "prosze wybrac pacjenta z pola select";}}
  24.  
  25.  


formularz
  1.  
  2. $connection = @mysql_connect('localhost', 'root', 'root')
  3. or die('Brak połączenia z serwerem MySQL');
  4. $db = @mysql_select_db('gabinet', $connection)
  5. or die('Nie mogę połączyć się z bazą danych');
  6.  
  7. $query = "select nrpacjenta, imiepacjenta, nazwiskopacjenta From pacjent order by 'nrpacjenta' DESC";
  8. $result = mysql_query($query);
  9. $num_results = mysql_num_rows($result);
  10. if($num_results>0){
  11. echo '<form action="kartawys.php" method="post">';
  12. echo'<select name="pacjent" align="center">';
  13. while($wybor = mysql_fetch_array($result)) {
  14. echo'<option value="'.$wybor['nrpacjenta'].'">'.$wybor['imiepacjenta'].' '.$wybor['nazwiskopacjenta'].'</option>';
  15. }
  16. echo'</select><br/>';
  17. echo '<input type="submit" name="wyslij" value="wybierz">';
  18. echo '</form>';
  19. echo '<br></br>';}
  20. else{
  21. echo 'brak wynikow';}
  22.  

jakby się komuś przydało
temat do zamknięcia pozdro
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: 26.04.2025 - 00:49