Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP] przesyłanie z jednego widoku do drugiego
Forum PHP.pl > Forum > Przedszkole
Mimi
Cześć smile.gif
Potrzebuję po wpisaniu danych do formularza pierwszego (widoku pierwszego) aby wyświetliły się one w nowym widoku ( już bez żadnych okienek gdzie można coś wpisać) na końcu ma być tylko guzik akceptuj który przesyła to do bazy danych. Niestety nie wiem gdzie popełniam błąd. I nie mogę przesłać tego do widoku drugiego sad.gif
index.php :
  1. <?php
  2.  
  3. include 'pierwszy.html.php' // pierwszy widok
  4.  
  5. if (isset($_GET['nazwisko']) && isset($_GET['imie']) and isset($_GET['pesel']) and isset($_GET['termin']) and isset($_GET['klasa']) )
  6.  
  7. $nazwisko=$_GET['nazwisko'];
  8. $imie=$_GET['imie'];
  9. $pesel=$_GET['pesel'];
  10. $termin=$_GET['termin'];
  11. $klasa=$_GET['klasa']; // koniec warunku
  12.  
  13. {
  14. include 'drugi.html.php'; // wyświetlenie danych
  15. }
  16. else
  17. {
  18. include 'form.html.php'; // jeśli nie ma danych
  19. }
  20. ?>


pierwszy.html.php (pierwszy widok)
  1. <!DOCTYPE html>
  2. <html lang="pl">
  3. <meta charset="UTF-8">
  4. <title>Document</title>
  5. </head>
  6.  
  7. <form action="drugi.html.php" method="GET">
  8.  
  9. Nazwisko <input type="text" name="nazwisko" /> </br>
  10. Imię <input type="text" name="imie" /> </br>
  11. Pesel <input type="text" name="pesel" /> </br>
  12. Termin <input type="date" name="termin" /> </br>
  13. Wybór klasy </br>
  14. klasa pierwsza <input type="radio" name="nazwa" value="1" />
  15. klasa druga <input type="radio" name="nazwa" value="2" /></br>
  16.  
  17. <input type="submit" class="button" onclick="drugi.html.php" value="OK" /> <!--wyświetlenie drugiego widoku-->
  18. </body>
  19. </html>
  20.  
olszam
index.php
13 linijka, nie w tym miejscu klamerka.

pierwszy.html.php
Kod
<input type="submit" class="button" onclick="drugi.html.php" value="OK" />

onclick to nie piszemy nazwy skryptów tylko kod javascirpt(głownie daną funkcję piszemy, która ma coś za zadanie robić)
Mimi
Niestety nie wiem w którym miejscu miała by być klamerka. Próbowałam w 3, 5 i 6 linijce.
Temat: Otwieranie stron z poziomu php Próbowałam zrobić to jak w tym zapytaniu (tylko używając else) ale dalej wyrzuca mi błąd, że nie spodziewa się if-a.

Jeśli wrzucę tutaj geta już nie ma błędu o tym, że nie spodziewa się if-a ale wyrzuca błą w linijce 8. Nie wiem jak inaczej mogłabym to zapisać.
  1. <?php
  2.  
  3. $strona = $_GET['pierwszy.html.php'];
  4.  
  5. include($strona."'pierwszy.html.php'");
  6.  
  7. if(isset($_GET['nazwisko']) && isset($_GET['imie']) and isset($_GET['pesel']) and isset($_GET['termin']) and isset($_GET['klasa'])
  8. $nazwisko=$_GET['nazwisko'];
  9. $imie=$_GET['imie'];
  10. $pesel=$_GET['pesel'];
  11. $termin=$_GET['termin'];
  12. $klasa=$_GET['klasa'];)
  13. {
  14. include 'drugi.html.php';
  15. }
  16. else
  17. {
  18. include'form.html.php';
  19. }
  20. ?>
viking
Źle zamknięty if - brakuje ), jest za to w 12 linii, źle otwarty { w linii 13.
Pracuj na sensownym IDE typu Netbeans, takie błędy będą od razu widoczne.
Mimi
Nie bardzo rozumiem, jak mam źle otwarty {? w sublimie normalnie podkreśla {} w linijkach 13 i 15 oraz 18 i 19.
Po tym jak poprawiłam to w if-ie nie spodziewa się elsa
viking
To co według Ciebie mają robić linie 8-12 w tym miejscu? Masz źle zamknięty blok deklaracji ifa )

Nie ma co prawda PSR na długie ify ale analogicznie do pozostałych przykładów najbardziej czytelny będzie zapis
  1. if (
  2. Isset() and
  3. Condition2 and
  4. C3
  5. ) {
  6. ...
  7. }
Mimi
Pomimo, że zmieniłam tak jak napisałeś dalej nie spodziewa się elsa. Czy w tym momencie otwarcie linijki 13 jest okej?
  1. <?php
  2.  
  3. $strona = $_GET['pierwszy.html.php'];
  4.  
  5. include($strona."'pierwszy.html.php'");
  6.  
  7. if(isset($_GET['nazwisko']) && isset($_GET['imie']) and isset($_GET['pesel']) and isset($_GET['termin']) and isset($_GET['klasa']) and
  8. $nazwisko=$_GET['nazwisko'] and
  9. $imie=$_GET['imie'] and
  10. $pesel=$_GET['pesel'] and
  11. $termin=$_GET['termin'] and
  12. $klasa=$_GET['klasa'] );
  13. {
  14. include 'drugi.html.php';
  15. }
  16. else
  17. {
  18. include'form.html.php';
  19. }
  20.  
  21. ?>
olszam
A chwila to niżej to też do ifa? Wybacz sam nie zauważyłem bo myślałem że te gety przypisujesz do zmiennych. Teraz masz dobrze ale że nadal nie zwraca ci elsa? może zdebuguj zmienne i gety bo tam musi być problem, albo spróbuj dać jakiś lewy warunek i zobacz czy ci pójdzie albo zamiast "=" daj "==".
Mimi
Dodałam == ale nic to nie zmieniło sad.gif

  1. <?php
  2.  
  3. $strona = $_GET['pierwszy.html.php'];
  4.  
  5. include($strona."'pierwszy.html.php'");
  6.  
  7. if ($strona = $_GET['pierwszy.html.php']);
  8. {
  9. include 'drugi.html.php';
  10. }
  11. else
  12.  
  13. {
  14. include'form.html.php';
  15. }
  16.  
  17. ?>
  18.  

Zrobiłam coś takiego ale nadal nie spodziewa się elsa
viking
W zasadzie chyba pierwszy raz to powiem ale programista z Ciebie nie będzie. Nie rozumiesz zupełnie co się w kodzie dzieje. Wróć do podstawowych spraw. Przypisywanie do zmiennych, składnia bazowa. Bo tak można jeszcze długo wskazywać błędy ale to nie będzie chodzić. Możesz zacząć od skomentowania linia po linii tego kodu.
viking
Co oznacza $_GET? Skąd te dane pochodzą? Jaka jest różnica między = a ==? Co ma robić kod od linii 9 do 13?
Mimi
Get służy do przesłania danych w pasku a dolar oznacza zmienną
Takie dane mamy podane w zadaniu które mamy zrobić
= jest to przyrównanie a == znaczy, że jeśli mamy np: $a == $b to a i b są takimi samymi wartościami
kod w linijkach 9-13 : jesli te dane są wpisane do formularzu czyli warunek jest spełniony są przesyłane do następnego widoku
edit
= znaczy że jakiejś zmiennej nadajemy pewną wartość np $a = 2
viking
Gdzie w formularzu z pierwszego posta definiujesz $_GET['pierwszy.html.php']?
W pierwszym poście, w linii 3 na końcu brakuje; przed komentarzem oczywiście.
Wyrzuć linie 7-11. Spróbuj zacząć od tych paru linijek.
Mimi
W pierwszym poście jeszcze nie wiedziałam, że muszę to zdefiniować ale później już to robiłam. Podobnie w następnych postach mam średnik.

Wyrzuciłam te linijki i już działa i ładuje się widok pierwszy. Kiedy wpiszę dane otwiera się widok drugi (jeszcze go nie zrobiłam więc wyświetla się czysta strona). Na razie znowu wyrzuca błąd, że nie spodziewa się elsa po wklejeniu linijek 7-11. Jeszcze co jest źle ale postaram się znaleźć błąd.

Kiedy zakomentuję else oraz include 'form.html.php'; działa dobrze
  1. <?php
  2.  
  3. $strona = $_GET['pierwszy.html.php'];
  4.  
  5. include('pierwszy.html.php');
  6.  
  7. if (isset($_GET['nazwisko']) && isset($_GET['imie']) and isset($_GET['pesel']) and isset($_GET['termin']) and isset($_GET['klasa']) )
  8.  
  9. {
  10. include 'drugi.html.php';
  11. }
  12. else
  13. {
  14. include 'form.html.php';
  15. }
  16. ?>
  17.  
viking
Najpierw odpowiedź sobie na pytanie co ma się znaleźć w pliku drugi. I zazwyczaj dane z form wysyła się POST.
phpion
We wszystkich kodach masz ten sam błąd, jedynie w ostatnim go nie ma, ale piszesz, że jednak nadal się rzuca. Może zatem przy wklejaniu na forum popełniłaś błąd. Chodzi o średnik na końcu warunku:
  1. if (...); <- tutaj

On w tym momencie kończy Ci instrukcję więc else powoduje błąd. Sprawdź to:
  1. if (1 == 1); {
  2. echo 'tak';
  3. }
  4. else {
  5. echo 'nie';
  6. }

i wersję bez średnika:
  1. if (1 == 1) {
  2. echo 'tak';
  3. }
  4. else {
  5. echo 'nie';
  6. }

Pierwsza rzuci błędem, druga nie. Generalnie samo dodanie średnika na końcu if'a nie jest błędem samym w sobie, można tak zrobić, ale wówczas warunek w zasadzie nic nie będzie robił smile.gif
  1. if (1 == 1);
  2.  
  3. echo 'test';
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.