Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pobieranie value ale wyswietlanie tekstu
Forum PHP.pl > Forum > Przedszkole
gogomania
Cześć
Gdy pobieram dwie wartości w select/option (1 i 2) i trzymam je w tablicy (array) przesyłam je do formularza i chciałbym by zostały wyświetlone tylko teksty po wciśnięciu przycisku 'submit'. Na chwilę obecną wyświetla mi tylko wartość czyli 1 lub 2. Oto kod.
Plik set-pdf.php
  1. <form action="uzytkownicy.php?akcja=print-pdf&uzytkownik_id=<?php echo $_GET['uzytkownik_id'] ?>" method="post">
  2. $opcje = array(
  3. 1 => 'Protokół Przekazania',
  4. 2 => 'Protokół Odbioru'
  5. );
  6.  
  7. <select name="rodzaj_prot">
  8. <?php foreach ($opcje as $value => $label): ?>
  9. <option value="<?php echo $value; ?>" <?php if ($_GET['rodzaj_prot'] == 1) { echo ' selected="selected"'; } ?>><?php echo $label; ?></option>
  10. <?php endforeach ?>
  11. </select>
  12. <input type="submit" class="button" value="Generuj PDF" name="submit">
  13. </form>



Zawartosc formularza z pliku set-pdf.php przesyłam do print-pdf.php:
  1. if (!empty($_POST['submit'])) {
  2. $rodzaj_protokolu = $_POST['rodzaj_prot'];
  3. }
  4.  
  5. echo $rodzaj_protokolu;



nospor
No przeciez wiesz co jest pod 1 a co pod 2 wiec zamiast liczb wyswietlaj ich tekstowe odpowiedniki... dosc logiczne
gogomania
Tylko jak mam to zrobić, naprowadź mnie proszę.
Aqu
W tablicy $opcje masz pod tymi numerami teksty, więc nie pokazuj wartości z POST, tylko wartość z $opcje, która jest pod tym numerem.
gogomania
Dziękuje za pomoc.
Dla potomnych rozwiązanie tego problemu dość proste. Musiałem się z tym przespać...

  1. if ($_POST['rodzaj_prot'] == 1) {
  2. echo $html .='
  3. Protokół Przekazania Sprzętu
  4. ';
  5. } else
  6. if ($_POST['rodzaj_prot'] == 2) {
  7. echo $html .='
  8. Protokół Odbioru Sprzętu
  9. ';
  10. }


Proste rzeczy zawsze są najtrudniejsze. Pozdrawiam
jakub.drag
Fajnie, ale idziesz na piechotę - jest ładniejsze rozwiązanie.
Zobacz: switch i case smile.gif
phpion
Propnowałbym stworzyć tablicę komunikatów:
  1. $rodzaje = array(
  2. 1 => 'Protokół Przekazania Sprzętu',
  3. 2 => 'Protokół Odbioru Sprzętu'
  4. );

a potem przy wyświetlaniu dobijać się do odpowiedniego klucza tablicy:
  1. $html = isset($_POST['rodzaj_prot']) && isset($rodzaje[$_POST['rodzaj_prot']]) ? $rodzaje[$_POST['rodzaj_prot']] : '';
gogomania
Cytat(phpion @ 13.04.2015, 10:03:16 ) *
Propnowałbym stworzyć tablicę komunikatów:
  1. $rodzaje = array(
  2. 1 => 'Protokół Przekazania Sprzętu',
  3. 2 => 'Protokół Odbioru Sprzętu'
  4. );

a potem przy wyświetlaniu dobijać się do odpowiedniego klucza tablicy:
  1. $html = isset($_POST['rodzaj_prot']) && isset($rodzaje[$_POST['rodzaj_prot']]) ? $rodzaje[$_POST['rodzaj_prot']] : '';


Możesz umotywować dlaczego powinienem zrobić według Twojego przykładu?
Chciałbym również wiedzieć dlaczego moje rozwiązanie jest nieprawidłowe?
nospor
Poniewasz rozwiązanie z tablicą jest ładne, szybkie, piękne, krótkie i bardziej skalowalne.
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.