eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.wwwPrzekazywanie danych w _POST
Ilość wypowiedzi w tym wątku: 2

  • 1. Data: 2010-10-18 21:00:56
    Temat: Przekazywanie danych w _POST
    Od: "Robbo" <y...@m...com>

    Witam,

    Stworzyłem w HTML formularz, w którym użytkownik
    może wypełnić kilka pól. Po wypełnieniu formularza,
    użytkownik klika przycisk "Podgląd" (typu "submit"),
    co powoduje przejście do następnej strony, na której
    prezentowane są wpisane uprzednio dane.
    Użytkownik ma teraz do dyspozycji dwa przyciski "Cofnij"
    oraz "Zatwierdź" (typu "submit") -- jeden
    zatwierdza dane, drugi powoduje ponowne przejście do
    strony umożliwiającej poprawę wpisanych danych.
    Mam pewien problem z realizacją "powrotu" ze
    strony prezentacji danych, do formularza, w którym
    użytkownik móglby dane poprawić. Chodzi o przekazanie
    danych przez _POST. Poniżej przedstawiłem, o co chodzi.


    Plik "formularz.php":
    <form name="editingForm" enctype="multipart/form-data" method="post"
    action="podglad.php">
    <input type="hidden" name="newplace" value="1" />
    nazwisko: <input type="text" name="nazwisko" value="<?PHP echo
    $_POST["nazwisko"]; ?>" />
    <input type="submit" name="formularzSubmit" value="Podgląd" />
    </form>

    Plik "podlad.php":
    <?PHP print_r($_POST); ?>
    <form name="PodladForm" enctype="multipart/form-data" method="post"
    action="formularz.php">
    <input type="submit" name="podladSubmit" value="Cofinj" />
    </form>

    Najpierw odpalamy "formularz.php", wypełniamy pole
    nazwisko i klikamy "Podląd", co powoduje uruchomienie
    "podlad.php" i prezentację danych z _POST.
    Chodzi o to, że teraz gdy nacisnę "Cofnij" i powrócę do
    "formularz.php", to chciałbym mieć w _POST wpisane
    uprzednio w formularzu nazwisko.
    W jaki sposób to zrobić?

    Przychodzi mi do głowy coś takiego w pliku "podlad.php":
    <?PHP print_r($_POST); ?>
    <form name="PodladForm" enctype="multipart/form-data" method="post"
    action="formularz.php">
    <input type="hidden" name="nazwisko" value="<?PHP echo $_POST["nazwisko"];
    ?>" />
    <input type="submit" name="podladSubmit" value="Cofinj" />
    </form>
    ... ale może ktoś ma lepszy pomysł, zwłaszcza, że widziałem
    stronę, na której jest przycisk "Cofnij" (typu "submit") i nie
    stosują ukrytych pól formularza.


    Z góry dziękuję za pomoc.
    R.


  • 2. Data: 2010-10-18 21:31:41
    Temat: Re: Przekazywanie danych w _POST
    Od: Piotr Siudak <s...@x...pl>

    W dniu 18.10.2010 23:00, Robbo pisze:

    > ... ale może ktoś ma lepszy pomysł,

    to jest trochę bardziej skomplikowane


    Po pierwsze pomysł by przesyłać dane postem do innego dokumentu nie
    jest najlepszy. Jego minusy widać w sytuacjach takich jak ta. Prosciej
    kiedy atrybut action formularza ma ta sama wartość co uri formularza.

    Po drugie, obsługa formularza składa sie z pieciu kroków:


    1. sprawdzenie czy odebrano dane i czy odebrane dane sa zgodne z
    załozonymi warunkami

    W przypadku bledów lub braku POSTa

    2. przygotowania danych do formularza
    3. wyswietlenie formularza (wraz z ewentualnym komunikatem o błędzie)

    W przypadku braku błedów

    4. przetworzenia danych
    5. wyświetlenia potwierdzenia/ przekierowania do nastepnego dokumentu.


    W twoim przypadku w formularzu1 w punkcie punkcie 4 zapisujesz dane do
    sesji i w punkcie 5 przekierowujesz do formularza2

    formularzu2 w punkcie 2 pobierasz dane z sesji i wyświetlasz celem
    potwierdzenia

    w razie cofniecia do formularza1 w punkcie 2 sprawdzasz zawartość sesji
    i w punkcie 3 wyswietlasz w formularzu to co zostało już wczesniej
    wprowadzone



    ale zdecydowanie lepszą grupą na tego typu dyskusje byłaby pl.comp.lang.php

    --
    Piotr Siudak
    s...@x...pl

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: