Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] POST
Forum PHP.pl > Forum > Przedszkole
Ryder
Witam

Standardowo zawsze się robi tak:

  1. <?php
  2. echo '<form action="strona2.php" method="post">';
  3. ...
  4. echo '<input type="submit" name="submit" value="Wybierz">';
  5. ?>

Chciałem sie dowiedziec czy jest jakis inny sposób przesyłania danych metodą post niż tylko za pomoca przycisku button. (np za pomocą linku a href, czy labela).
windman
można wysłać formularz nie naciskając buttona, na przykład właśnie linkiem.

  1. <a href="#" onclick="document.nazwa_formularza.submit();">Wyślij formularz</a>


do tego formularz może byc niewidoczny i zawierać tylko pola typu hidden, które będą zawierały jakieś tam wartości ale nie będą widoczne, o to chodziło?

pozdrawiam
Ryder
Chodziło mi tylko o to, żeby zmienic przycisk na jakiś inny element (tak żeby nie był zawsze przycisk)
Próbowałem to co napisałeś, ale nie wiem jak to miało by dokładnie wygladać.

  1. <?php
  2. if (isset($_POST['submit']) && $_POST['submit'] == 'Wybierz')
  3. {
  4. $typ_komunikatu = $_POST['typ'];
  5. echo "aaaaaaaaaaaaaa";
  6. }
  7. ?>


  1. <?php
  2. echo '<form action="skrzynka.php" method="post" name="form1">';
  3.  
  4. echo '<select name="typ">';
  5. echo "<option value=\"1\">Skrzynka odbiorcza</option>";
  6. echo "<option value=\"2\">Skrzynka nadawcza</option>";
  7. echo "<option value=\"3\">Nowa wiadomość</option>";
  8. echo '</select>';
  9.  
  10. echo '<input type="submit" name="submit" value="Wybierz">';
  11. I jak teraz zamiast tej lini wyżej dać to co napisałeś
  12. echo '<a href="skrzynka.php" onclick="document.form1.submit();">Wybierz</a>';
  13. ?>
windman
mniej więcej tak jak w kodzie, który podałeś, tylko....
nie sparwdzaj zmiennej submit, wywal przycisk, przecież go nie chciałeś.
Zamiast tego wstaw pole

  1. <input type="hidden" name="wyslano" value="1">


W ten sposób skrypt który wywołany zostanie przez wysłanie formularza otrzyma zmienną $_POST['wyslano'] i jeśli będzie równa 1 to będzie wiedział, że formularz na pewno został wysłany.

Natomiast linię co w pierwszej odpowiedzi Ci pokazałem możesz wstawić gdziekolwiek na stronie.
Zamknij formularz </form> i pod tym wstaw tą linię, powinno działać.

A tu masz Twój kod po modyfikacji:

  1. <?php
  2. if ($_POST['wyslano']==1)
  3. {
  4. $typ_komunikatu = $_POST['typ'];
  5. echo "aaaaaaaaaaaaaa";
  6. }
  7. ?>
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.