Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP lub też HTML problem ...?
Forum PHP.pl > Forum > Przedszkole
kasjus
Nie za bardzo wiem czy to bardziej problem php czy html ale jednak zaryzykuje:

Problem jest następującego typu:

Jest sobie baza danych z której pobieram wartości, którymi wypelniam listę wyboru i to realizowane jest na stronie 1.php

**********************************************************

  1. <SELECT NAME = "wpr" OnChange="location = this.options[this.selectedIndex].value;"">
  2. <OPTION>- - - - Wydział - - - -</OPTION>
  3. <OPTION value="new_wydzial.php">Nowy</OPTION>
  4. <?
  5. $moja_baza = new mysqli('localhost','root','misty25');
  6. $moja_baza->select_db('wps');
  7. $wynik = $moja_baza->query("SELECT DISTINCT wydzial FROM wydzial_kierunek");
  8. while($wiersz = $wynik->fetch_assoc()) 
  9. {
  10. print '<option value="kierunek.php">'.
  11. $wiersz['wydzial']
  12. .' </option>';
  13. }
  14.  
  15. $wynik->close(); 
  16. ?>
  17. </SELECT>


**********************************************************
Jeśli wybiorę wartość nowy - otwiera sie strona dodawania nowej wartości a jeśli coś innego otwiera się strona kierunek.php.

Pytanie:
1. Jak na stronie kierunek.php pobrać wartość wybraną z listy wyboru na stronie 1.php
2. Na stronie kierunek.php opcją include dołaczony jest plik 1.php, aby ciagle widoczna była lista wyboru. Jak ustawić jej wartość na wybraną wcześniej na stronie 1.php


~mike_mech
lukir
Czy kod HTML formularza, który podałeś jest kompletny??
Bo mi brakuje <form></form>...

Wpisz coś takiego: (poprawiony plik 1.php)
  1. <?php
  2.  
  3. function CreateForm($selected=0) {
  4. $form = "<form method="post" action="".$_SEVER['PHP_SELF']."">
  5. <select name="wpr" OnChange="location = this.options[this.selectedIndex].value;">
  6. <option>- - - - Wydział - - - -</option>
  7. <option value="new_wydzial.php">Nowy</option>";
  8.  
  9. $moja_baza = new mysqli('localhost','root','misty25');
  10. $moja_baza->select_db('wps');
  11. $wynik = $moja_baza->query("SELECT DISTINCT wydzial FROM wydzial_kierunek");
  12.  
  13. while($wiersz = $wynik->fetch_assoc())
  14. {
  15. if(($selected != 0)&&($selected == $wiersz['wydzial'])) {
  16. $form .= "<option value="$wiersz['wydzial']" selected>".$wiersz['wydzial']."</option>"; //zaznaczenie opcji, która została wybrana
  17. } else {
  18. $form .= "<option value="$wiersz['wydzial']">".$wiersz['wydzial']."</option>";
  19. }
  20. }
  21.  
  22. $wynik->close();
  23.  
  24. $form .= "</select>
  25. <input type="hidden" name="sended" value="yes">
  26. </form>");
  27. }
  28.  
  29. if((!isset($_POST['sended']))&&($sended!="yes")) { //nie wysłano formularza
  30. CreateForm(); //tworzenie formularza
  31. } else { //wysłano taki formularz
  32. CreateForm($_POST['wpr']); //zaznaczenie opcji, która została wybrana w formularzu wyświetlonym ponownie
  33. echo("Wybrana opcja: $_POST['wpr']");
  34. }
  35.  
  36. ?>


I wszystko ogranicza się do jednego pliku (1.php) dzięki wysyłaniu się formularza do siebie.
Trochę przeróbek i będzie też działało dla dodawania nowych wydziałów. Teraz nie mam czasu.
kasjus
Coś jest nie tak bo idąc tym tropem rozumowania (oczywiście o ile się nie mylę)
poniższy przykładowy kod też powinien działać - a nie działa:
  1. <html>
  2. <meta name="Language" content="pl">
  3. <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=windows-1250">
  4. <?php
  5.  
  6. function CreateForm() 
  7. {
  8. $form = "<form method = post > 
  9. <input type= "submit" value="Dalej">";
  10. $form = "</form>";
  11. }
  12. ?>
  13. Tworzę formularz
  14. <?
  15. CreateForm();
  16. ?>
  17. </html>



a efekt jest taki że zamiast przycisku Dalej pojawia się tylko napis Tworzę formularz, który jakoby nic w tym wypadku nie oznacza sad.gif
mike
@kasjus Twój przykład działa i to bardzo dobrze.Tylko nie tak jak myślisz tongue.gif Działa dokładnie tak jak napisałeś.

Twoja funkcja ma za zadanie podstawić zmienną i tyle robi winksmiley.jpg
Nie zwraca żadnej wartości, nie wyświetla nic na ekran.

Powinno być tak:
  1. <?php
  2. function CreateForm()
  3. {
  4. $form = '<form method = post >';
  5. $form .= '<input type= "submit" value="Dalej">';
  6. $form .= '</form>';
  7. echo $form;
  8. }
  9. ?>
  10. Tworzę formularz
  11. <?
  12. CreateForm();
  13. ?>
kasjus
Ok! Ponieważ z tego co dostałem nie jestem w stanie sklecić całości przesyłam kod dwóch plików:
pierwszy - wpr_wydzial_kierunek.php
drugi - kierunek.php
Bierzemy po uwagę opcję że ktoś z listy wybrał wydział i został przeładowany automatycznie (opcja OnChange) do strony kierunek.php
Pytanie brzmi następująco: Co i gdzie trzeba dodać/zmienić aby po przejściu na stronę kierunek.php pole rozwijane wydział ustawione było na wydział wybrany na stronie wpr_wydzial_kierunek.php
******************************
PLIKI:

wpr_wydzial_kierunek:
  1. <html>
  2. <meta name="Language" content="pl">
  3. <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=windows-1250">
  4. <?include("1_index.php"); 
  5. ?>
  6. <form action="wpr_wydzial_kierunek.php" method=post>
  7. <table border=0>
  8. <tr bgcolor=#cccccc>
  9. <td>
  10. <SELECT NAME = "wpr" OnChange="location = this.options[this.selectedIndex].value;">
  11. <OPTION>- - - - Wydział - - - -</OPTION>
  12. <OPTION value="new_wydzial.php">Nowy</OPTION>
  13. <? 
  14. $moja_baza = new mysqli('localhost','root','misty25');
  15. $moja_baza->select_db('wps');
  16. $wynik = $moja_baza->query("SELECT DISTINCT wydzial FROM wydzial_kierunek");
  17. while($wiersz = $wynik->fetch_assoc()) 
  18. {
  19.  
  20. print '<option value="kierunek.php" >'.
  21. $wiersz['wydzial']
  22. .' </option>';
  23.  
  24. }
  25. $wynik->close(); 
  26. ?>
  27. </SELECT>
  28. </td>
  29. </tr>
  30. </table>
  31. </form>
  32. </html>



kierunek.php

  1. <html>
  2. <meta name="Language" content="pl">
  3. <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=windows-1250">
  4. <?
  5. include("wpr_wydzial_kierunek.php");
  6. ?>
  7. <form action="kierunek.php" method=post>
  8. <table>
  9. <tr>
  10. <td> </td>
  11. </tr>
  12. <tr bgcolor=#cccccc>
  13. <td>
  14. <SELECT NAME = "wpr_4">
  15. <OPTION>- - - - Kierunek - - - -</OPTION>
  16. <OPTION value="new_kierunek.php">Nowy</OPTION>
  17. <?
  18. $moja_baza = new mysqli('localhost','root','misty25');
  19. $moja_baza->select_db('wps');
  20. $wynik = $moja_baza->query("SELECT DISTINCT kierunek FROM wydzial_kierunek where
  21. wydzial_kierunek.wydzial='Elektrotechniki i elektroniki' ");
  22.  
  23. while($wiersz = $wynik->fetch_assoc()) 
  24. {
  25. print '<option value="specjalnosc.php">'.
  26. $wiersz['kierunek']
  27. .' </option>';
  28. }
  29. $wynik->close(); 
  30. ?>
  31. </SELECT>
  32. </td>
  33. </tr>
  34. </table>
  35. </form>
  36. </html>



Tyle smile.gif Proszę o bardzo łopatologiczne odpowiedzi smile.gif
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.