Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz - metoda POST - elementy listy rozwijanej brane z tabeli i wysłanie wybranego elementu metodą POST
Forum PHP.pl > Forum > PHP > Object-oriented programming
wluczykuj
Cześć,

mam prosty formularz z listą rozwijaną elementów do wyboru.

Elementy które trafiają do listy rozwijanej są utworzone w tablicy.
W formularzu na podstronie index.php za pomocą pętli wyświetlam wszystkie elementy z tablicy.


Wybrany z listy rozwijanej element chcę wysłać i wyświetlić na podstronie /results.php. W jaki sposób mam napisać kod w pliku results.php odbierający wybrany element w formularzu (tu nie wiem jak wskazać o jaki element dokładnie z tablicy chodzi czy o 0, 1, 2 czy może 3..? ) i jak wyświetlić ten element?


  1. <?php
  2. $data = [
  3.  
  4. 'cars' => ['ford', 'volvo', 'tesla', 'opel']
  5. ];
  6.  
  7. ?>
  8.  
  9. <form action='results.php' method='post'>
  10. <select>
  11. <?php foreach ($data['cars'] as $cars) : ?>
  12. <option value="<?php $data['cars']?>"> <?php echo $cars ?> </option>
  13. <?php endforeach; ?>
  14. </select>
  15. <button name='subimt'>wyślij</button>
  16. </form>
  17.  





viking
Var_dump($_POST)
Nie masz name w select.
wluczykuj
Racja, zapomniałem.

Hmm.. Przetestowałem wysyłanie prostego inputa name="info" i wyświetlanie na result.php wprowadzonej danej - to działa. Ale niestety wciąż nie działa mi wyświetlenie wybranej danej z listy rozwijanej, ponizej kod:

index.php
  1. <?php
  2. $data = [
  3.  
  4. 'cars' => ['ford', 'volvo', 'tesla', 'opel']
  5. ];
  6.  
  7. ?>
  8.  
  9. <form action='results.php' method='post'>
  10. <select name="selectCar">
  11. <?php foreach ($data['cars'] as $cars) : ?>
  12. <option value="<?php $data['cars']?>"> <?php echo $cars ?> </option>
  13. <?php endforeach; ?>
  14. </select>
  15. <input name="info" placeholder="info">
  16. <button name='submit' type='submit'>Submit Information</button>
  17. </form>
  18.  


result.php
  1. <?php
  2.  
  3. $select = $_POST['selectCar'];
  4. $info = $_POST['info'];
  5.  
  6. var_dump($info);
  7. var_dump($select);
  8. ?>
viking
  1. value="<?php $data['cars']?>"> <?php echo $cars ?>


Widzisz różnicę?
wluczykuj
Próbowałem to teraz ogarnąć, ale nie bardzo widzę różnice ponieważ ten fragment mam taki sam:

  1. value="<?php $data['cars']?>"> <?php echo $cars ?>


przykładowy wynik mam taki: string(11) "jakies info" string(0) ""
viking
To bardziej $data['cars'] -> echo $cars

Dlaczego ten temat jest w OOP?
wluczykuj
Jak można zmienić kategorie na forum? Bo fakt, błędnie przypisany wątek, wybacz.

Tak czy inaczej wklejam jeszcze do tego wątku kod który troszkę zmieniłem i działa. Dziękuję za pomoc.

index.php
  1. <?php
  2.  
  3. $cars = ['ford', 'volvo', 'tesla', 'opel']; // ten zapis jest prostszy niż w poprzednim kodzie
  4.  
  5. ?>
  6.  
  7. <form action="results.php" method="POST">
  8. <label>Wybierz samochód</label>
  9. <select name="cars">
  10. <?php foreach ($cars as $car) : ?>
  11. <option value="<?php echo $car ?>"><?php echo $car ?></option>
  12. <?php endforeach; ?>
  13. </select>
  14. <button name='submit' type='submit'>Wyślij</button>
  15.  
  16. </form>
  17.  


results.php

  1. <?php
  2.  
  3. $selected = $_POST['cars'];
  4. echo 'Wybrałeś: ' .$selected;
  5.  
  6. ?>


__
Jeszcze w nawiązaniu do poprzedniego niedziałającego kodu, wyszedłem od tego poniższego zapisu i to chyba był błąd bo nie poradziłem sobie potem z tym zarówno w 'formie' jak i w results.php, w sumie nie wiem jakbym miał z tym zadziałać.

  1. $data = [
  2. 'cars' => ['ford', 'volvo', 'tesla', 'opel']
  3. ];

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.