Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PHP lub też HTML problem ...?
kasjus
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 1.11.2005
Skąd: Bielsko-Biała

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
lukir
post
Post #2





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 6.08.2004
Skąd: Warszawa

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


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.


--------------------
"Tylko myśl dojrzała i jasna daje się wypowiedzieć w słowach prostych" - prof. Witold Doroszewski
Warsztat: os: Windows XP, serwer: Apache 2.0.55, php: 5.1.4, baza danych: MySQL 4.1.7.
Go to the top of the page
+Quote Post
kasjus
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 1.11.2005
Skąd: Bielsko-Biała

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


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
Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


@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. ?>
Go to the top of the page
+Quote Post
kasjus
post
Post #5





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 1.11.2005
Skąd: Bielsko-Biała

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


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
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 Aktualny czas: 19.08.2025 - 13:20