Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] przekierowanie w zależności od formularza
xandersky
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 12.11.2011

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


Witam..

Nie mogę sobie poradzić z jedną rzeczą..

Potrzebuję zrobić coś takiego:

Formularz ma trzy rubryki :

- nazwa
- cena
- koszt

W zależności od tego czy koszt jest "0" czy jest inny potrzebuje:

- jeżeli jest 0 to dodać rekord do bazy danych
- jeżeli coś w formularzu kosztów wpiszę chcę by przekierowało mnie i przekazało dane do strony gdzie będę jeszcze mógł uzupełnić opis kosztów i dopiero to wszystko wysłać do bazy..

Co do kodu..

1) Sam formularz

  1. <tr>
  2. <td class="row1">
  3. <br />
  4. Dodaj nowy zakup:
  5. <br /><br />
  6. <form action="add.php" method="post">
  7. Telefon:&nbsp;
  8. <input type="text" name="telefon" />&nbsp;&nbsp;
  9. Kwota zakupu:&nbsp;
  10. <input type="text" name="kwota" />&nbsp;&nbsp;
  11. Koszty:&nbsp;
  12. <input type="text" name="koszt" />&nbsp;&nbsp;
  13. <input type="submit" value="&nbsp;Zapisz&nbsp;" />
  14. </form>
  15. </td>
  16. </tr>


2) Plik add.php

  1. $user= $_SESSION['uzytkownik'];
  2. $data=date("d-m-Y");
  3. $data1=date("m");
  4. $telefon = $_POST['telefon'];
  5. $kwota = $_POST['kwota'];
  6. $icon_warn = "<br /><img src=\"/telefony/images/warning-icon.png\">";
  7. $koszt = $_POST['koszt'];
  8.  
  9. if($koszt == 0)
  10. {
  11. if($telefon and $kwota)
  12. {
  13. // dodajemy rekord do bazy
  14. $ins = @mysql_query("INSERT INTO telefony_kupione SET telefon='$telefon', kwota='$kwota', data='$data', data1='$data1'");
  15.  
  16. if($ins)
  17. {
  18. $wyn="<br /><table width=\"100%\" cellpadding=\"3\" cellspacing=\"0\" border=\"0\" class=\"forumline\"><tr><td class=\"row1\" colspan=\"2\" height=\"28\">&nbsp;".$icon_warn."&nbsp;&nbsp;<b>Rekord został dodany poprawnie. Kliknij <a href=\"main.php\">Tutaj</a> aby powrócić</b></td></tr><tr><td class=\"catHead\" colspan=\"4\" height=\"28\"><span class=\"cattitle\"><b>&nbsp;</b></span></td></tr></table><br /><br />";
  19. }
  20. else
  21. {
  22. $wyn="<br /><table width=\"100%\" cellpadding=\"3\" cellspacing=\"0\" border=\"0\" class=\"forumline\"><tr><td class=\"row1\" colspan=\"2\" height=\"28\">Błąd nie udało się dodać nowego rekordu</td></tr><tr><td class=\"catHead\" colspan=\"4\" height=\"28\"><span class=\"cattitle\"><b>&nbsp;</b></span></td></tr></table><br /><br />";
  23. }
  24.  
  25. }
  26. }
  27. else
  28. {
  29. header("costs.php?step=add&amp;telefon=$telefon&amp;kwota=$kwota&amp;koszt=$koszt");
  30. }


Tu w przypadku else próbowałem przekierować dane GET'em do strony costs.php gdzie mógłbym dodać opis kosztów..

Niestety całe powyższe rozwiązanie nie działa..

W przypadku gdy koszt jest wpisany 0 to rekord dodaje się do bazy bez problemu natomiast gdy wpiszę cokolwiek innego poza zerem nic się nie dzieje..

Ma ktoś pomysł jak to rozwiązać? ewentualnie gdzie popełniłem błąd??

Pozdrawiam serdecznie
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Micchaleq
post
Post #2





Grupa: Zarejestrowani
Postów: 186
Pomógł: 4
Dołączył: 13.10.2009

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


Cytat(mortus @ 18.11.2011, 08:41:43 ) *
Nie można, zmienne w PHP nie są bytem trwałym. Każde żądanie (wejście na stronę, odświeżenie strony) powoduje wygenerowanie i wczytywanie nowej zawartości, wykonanie skryptu ponownie. Zatem po przejściu z pliku add.php do costs.php zmienne z add.php kończą żywot. Mechanizmy, które pozwalają nam przechowywać te zmienne to m.in. ciasteczka, sesje, a w szczególnych przypadkach bazy danych, czy pliki.


Nie przeczytałeś mojego postu ze zrozumieniem.

Wydaje mi się, że plik cost.php zawiera formularz w większości html, więc

index.php->add.php ( if$koszt != 0, include cost.php )

i pracujemy na pliku add.php mając wewnątrz wczytany plik cost.php
Go to the top of the page
+Quote Post
xandersky
post
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 12.11.2011

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


Cytat(Micchaleq @ 18.11.2011, 10:52:34 ) *
i pracujemy na pliku add.php mając wewnątrz wczytany plik cost.php


Ja generalnie potrzebuję wyświetlić ten plik.. Wczytanie go nic mi nie da - na jedno by wyszło jakbym kod PHP z costs.php zamieścił od razu w pliku add.php.. Fizycznie chodzi o to by:

- jeżeli w formularzu w add.php wpiszę koszty = 0 - zapisuje mi dane do bazy
- natomiast gdy wpiszę już jakąś sumę wtedy przekierowuje mnie do drugiego formularza w którym to wypełniam sobie co to za koszty i dopiero całość zapisuję do bazy danych..

Metoda z headerem i przekierowaniem danych getem do costs.php działa poprawnie także nie ma co już tutaj ruszać (IMG:style_emoticons/default/wink.gif)

Teoretycznie mógłbym jeszcze wszystko zrobić w pliku add.php na zasadzie if($koszt == 0) oraz elseif($koszt != 0) natomiast formularz kosztów będzie operować na innej tabeli w bazie i wolałem mieć go oddzielnie
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 08:45