Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/html]Przesyłanie z formularza do formularza
Forum PHP.pl > Forum > Przedszkole
AQuatro
Mam ciekawy problem. Chodzi mi o przesłanie danych do formularza.
Jak wiadomo zazwyczaj robi się tak:
Jest formularz w html'u i z tego formularza przesyłana jest wartość w nagłóku do pliku php np typu POST.
Lecz ja mam problem tego typu, że chciałbym aby już do formularza w htmlu, była przesłana jakaś wartość, a potem w tym formularzu uzupełniona o kolejne wartości i dopiero przesłana do php.
Opiszę na przykładzie.
Załóżmy, że jest 1000 stron. Powiedzmy opisujących różne przedmioty. Załóżmy, że ktoś chce kupić przedmiot to klika na jednej z tych stron i uruchamia formularz. Ja mam 1000 formularzy więc nie ma problemu. Jednak chciał bym aby był tylko jeden formularz, który to obsłuży. Tylko tutaj pojawia się problem, że ten formularz "musi wiedzieć" z jakiej strony ktoś go uruchomił, czyli np co chce kupić.
Jak to rozwiązać ?
Cienki1980
Może wykorzystać tak $_SERVER['HTTP_REFERER'] i w zależności co ta zmienna zwróci uruchamiać odpowiedni formularz z odpowiednim wypełnieniem czy też innymi opcjami.
AQuatro
Ok. ale drugi formularz musi być w html'u o ole się nie mylę, dopiero po jego wypełnieniu jesteśmy kierowani do pliku php.
Mam sytuację taką - kilka tysięcy stron w html, (załóżmy różne przedmioty na każdej stronie), po kliknięciu na jakiejkolwiek ze stron, mam przekierowanie do jednego, tego samego formularza html (w którym uzupełniam np dane kupującego, po uzupełnianiu tego formularza informacja wędruje do pliku php,
Tylko jak zrobic aby powędrowała równiez informacja o przedmiocie, czyli o jednej z wielu stron, które kierowały na ten formularz.
Słabo znam php, ale wiem, że da się w php wtrącić jakoś kod html. Gdyby ten formularz był w php, to było by rozwiązanie. Pytanie więc czy przejęta wartość, np typu post lub inna, może posłużyć jako domyślna i niezmienna wartość zawartego formularza.
(na marginesie prościutkie pytanie - jak wtrącić kawałek kodu w htmlu do php, pamiętam coś że się da, tylko nie wiem jak.)
Cienki1980
Przecież możesz zrobić cały formularz w php ot w taki prosty sposób biggrin.gif
  1. <?php
  2. //tu wykonujesz jakieś funkcje linijki kodu php
  3. //albo coś innego
  4. ?>
  5.  
  6. <table><tr><td>zawartość komórki</td></tr></table>
  7.  
  8. <div>zawartość div'a</div>
  9. <!--i tak dalej i tak dalej -->
  10. <?php
  11. //tu jakieś linijki dalsze jeżeli ich potrzebujesz
  12. //jeżeli nie to nie
  13. ?>


Taki plik zapisujesz jako php i działa jak powinno.
W tych linijkach kodu możesz w zależności od adresu skąd przyszło zlecenie wykonać jakieś czynności, wyciągnąć jakieś dane, czy też inaczej sformatować formularz.
AQuatro
Ok, dochodzimy powoli do rozwiazania problemu.
Czyli przejściowy formularz koniecznie musi być w php.
Więc mój formularz bedzie wyglądał tak:
  1. <?php
  2. $informacja=$_POST['tresc'] # mój formularz przyjmuje jakąś informację z konkretnej strony.
  3. ?>
  4.  
  5. # no i teraz html:
  6. <FORM action="post.php" method="POST">
  7. <INPUT type="text" name="tekst">
  8. <INPUT type="submit" value="zamieszczaj">
  9. <?php ?>

Więc programik wyglądał by tak:
Pytanie:, jak sprawić, aby do pliku post.php powędrowała nie tylko zmienna tekst, ale również i zmienna $informacja questionmark.gif
Cienki1980
  1. <?php
  2. $informacja=$_POST['tresc'];
  3.  
  4. echo "<form action="plik.php" method="post">";
  5. echo "<input type="hidden" name="informacja" value="".$informacja."">";
  6. echo "<input type="text" name="pole_txt">";
  7. echo "<input type="submit" value="zatwierdz"></form>";
  8. ?>



Tu cały formularz napisany w php, ale ogólnie zasada jest taka, że umieszczasz pole 'hidden' i tam wpisujesz wartość pobraną w php
AQuatro
Wygląda na to, że problem rozwiązany.
Dzięki za pomoc.

Pojawił się jeszcze jeden, ostatni chyba już, problem.
Do tego samego pliku php w przyjmuję wartości z różnych stron.
Przyjmuję plik 'post.php za pomocą:
$wartosc=_POST['tresc'];

Jeżeli strona wysyła z formularza typu post, to jest ok.
Jednak niektóre strony nie wysyłają z formularza, lecz wysyłają w takiej formie:
<a href="http://www.xx.pl/post.php?tresc=aaaaaaabbbbbbcccc">LINK

Jak przyjąć taką treść w php ?
Dlaczego nie działa wyżej wymieniony sposób ?
nospor
1) z forma wysylanego metoda post, pobiera sie z z $_POST
2) z forma wysylanego metoda get, pobiera sie z z $_GET
3) z linku pobiera sie z $_GET
4) gdy nie interesuje cie skad pochodzi, pobierasz z $_REQUEST
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.