Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Formularz - jednoczesne wyslanie do MySQL i nowa strona
Forum PHP.pl > Forum > Przedszkole
AlinaMalutka
Może ktoś wie jak W PROSTY SPOSÓB wykonać JEDNOCZESNE wysłanie danych z formularza i przekierowanie na inną stronę www. Próbowałam w: echo '<FORM method="POST">'; zrobić: echo '<FORM action="innaStroma.htm" method="POST">'; ale wtedy tylko otwiera nową stonę lecz nie wysyła danych do bazy danych....

  1.  
  2. if ($co == 'dodaj') { // dodawanie rekordu
  3. if ($tttttttt && $hhhhhhhh && $jjjjjjjjjj && $ooooooooo && $ppppppppp) {
  4. $query1 = "INSERT INTO sssssssssss (vvvvvvvvvv, tttttttt, hhhhhhhh, jjjjjjjjjj, ooooooooo, ";
  5. $query1 .= "ppppppppp) VALUES ('', '$tttttttt', '$hhhhhhhh', '$jjjjjjjjjj', '$ooooooooo', '$ppppppppp');";
  6. $wynik1 = mysql_query ($query1);
  7. }
  8. } elseif ($co == 'skasuj') { // kasowanie
  9. $wynik1 = mysql_query
  10. ("DELETE FROM sssssssssss WHERE dddd = '$id';");
  11. ............................
  12. ............................
  13.  
  14. echo '<div align=center>';
  15. echo '<FORM method="POST">'; // <<========== Probowalam z: action="innaStroma.htm" ale nie dodaje wtedy danych do MySQL
  16. echo '<INPUT TYPE="hidden" NAME="co" VALUE="dodaj">';
  17.  
  18. echo '<INPUT TYPE="hidden" NAME="aaaaaaaaaa" value="'.$cccccc.'">';
  19. ............................
  20. ............................
  21.  
  22.  
  23. echo '<BR>';
  24. echo '<INPUT TYPE="submit" VALUE="Wyślij"></FORM>';
  25. echo '</div>';
  26.  


Proszę o prostą odpowiedź

Alina
gorzat
po akcji np DELETE dodaj sobie

  1. header("Location: inna.php");
bemol
Lub jeśli nie możesz (wyświetlasz coś wcześniej), daj obsługę tego formularza (if i elseif) do innejStrony.php i form action wpisz innejStrony.php
AlinaMalutka
Coś nie umiem tego { header("Location: inna.php"); } wstawić w odpowiednie miejsce. Ciągle pokazuje mi błąd. Najczęściej w użyciu jest część INSERT { $query1 = "INSERT INTO sssssssssss (vvvvvvvvvv, ... } więc zacytuj mi ten fragment mojego kodu z wstawionym Twoim kodem. Intencja jest taka: po wykonaniu dodania danych do bazy MySQL ma otworzyć się KonkretnaInnaStrona.php . Kombinowałam ze 100 razy ale bez efektu.

Pozdrawiam i czekam

Alina
sadistic_son
header("Location: inna.php"); musi być przed jakimkolwiek innym wysłaniem nagłówków, innymi słowy przed jakimkolwiek kodem html zwróconym na ekranie, czyli przed jakimkolwiek wyświetlanym echo.
Kolejna możliwość to w sekcji <head> Twojego dokumentu dodaj to:
  1. <meta http-equiv="REFRESH" content="1;url=http://KonkretnaInnaStrona.php">
W tym przypadku strona się odpali ale po 1 sekundzie nastąpi przekierowanie na inną. Możesz 1 podmienić na 0, wtedy przekierowanie nastąpi natychmiast, wystarczy, że żądane akcje np. dodanie do bazy wykonasz przed sekcją head.
Gość
Cały czas mam problem:

Samo
  1. header('Location: www.testA.pl');
po wklejeniu ( w miejscu bezpośrednio po wykonaniu wysylki do MySQL) jest jakby nieaktywne (zresztą wszędzie gdziekolwiek bym nie wkleiła jest to nieaktywne) i generuje komunikat o błędzie.
Wklejone w jakikolwiek inny sposób np.:

  1. if ($co == 'dodaj')
  2. {
  3. header('Location: www.testA.pl');
  4. }
  5. else if ($co == 'dddddd')
  6. {
  7. header('Location: www.testB.pl');
  8. }



również generuje informację o błędzie questionmark.gifquestionmark.gif? (przykład z VertrigoServ):


=================

Przekierowanie:

  1. <meta http-equiv="REFRESH" content="1;url=http://KonkretnaInnaStrona.php">


owszem jest fajne ale żyje swoim życiem (przekierowuje natychmiast albo po 1 sek....) a ja potrzebuję przekierowania na KonkretnaInnaStrona.php natychmiast (ale) po wysłaniu formularza.

Podpoooowiedzi!!! (jak najprostrzej...)

Alina
gorzat
co to znaczy, ze jest nieaktywne?

  1. if ($co == 'dodaj') { // dodawanie rekordu
  2. if ($tttttttt && $hhhhhhhh && $jjjjjjjjjj && $ooooooooo && $ppppppppp) {
  3. $query1 = "INSERT INTO sssssssssss (vvvvvvvvvv, tttttttt, hhhhhhhh, jjjjjjjjjj, ooooooooo, ";
  4. $query1 .= "ppppppppp) VALUES ('', '$tttttttt', '$hhhhhhhh', '$jjjjjjjjjj', '$ooooooooo', '$ppppppppp');";
  5. $wynik1 = mysql_query ($query1);
  6.  
  7. header('Location: www.testA.pl');
  8. }
  9. } elseif ($co == 'skasuj') { // kasowanie

powinno dzialac.
mozesz tez wlasnie wsadzic to -

  1. <meta http-equiv="REFRESH" content="0;url=http://KonkretnaInnaStrona.php">

nie jest to raczej poprawne, ale dziala. najlepiej napisz jaki blad Ci wyskakuje
sadistic_son
1) Czy ten kod z pierwszego posta importujesz do innego pliku? Np. za pomocą instrukcji php include?
2) Jaki błąd jest zwracany po dodaniu header? Czy jest to coś typu (...)headers already sent(...)?
3) if(pytanie1===false){ to w którym konkretnie miejscu wklejasz ten header?
4) if(pytanie1===true){ to wklej tu cały kod nad jakim pracujesz.
AlinaMalutka
Dzięki wszystkim...

Kod:
  1. header('Location: KonkretnaInnaStrona.php);
działa na moim serwerze zewnętrznym. Nie działał na wewnętrznym - w komputerze (pracowałam na Vertrigo 2.23).
Jeżeli ktoś będzie znał inną PROSTĄ metodę na automatyczną zmianę strony W MOMENCIE wysyłania FORMULARZ to temat dalej jest otwarty... Jednak na tą chwilę jestem zadowolona - wszystko mi zadziałało i działa dalej. Jest OK.

Czekam na nowe pomysły...

Alina
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.