Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] przekazanie drugiej zmiennej przez formularz
Forum PHP.pl > Forum > PHP
piano
Witam. Mały problemik... .
poniższy formularz pobiera i wyświetla z bazy danych zmienną $row['nazwa_galerii'] a po wybraniu którejś z opcji przesyła odpowiadającą jej zmienną $row['id']. I wszystko jest ok. Chciałbym jednak dalej używać też zmiennej $row['nazwa_galerii'].
Jak można zrobić aby używać dalej też ['nazwa_galerii'].

Prośba o wyjaśnienie i 2 zdania komentarza.
Dzięki.


[php]
Cysiaczek
Popraw proszę tytuł topiku na zgodny z zasadami forum Przedszkole
piano
Jeszcze raz. Cos mi fixuje jak wprowadziłem poprawki do pierwszego posta.

Witam. Mały problemik... .
poniższy formularz pobiera i wyświetla z bazy danych zmienną $row['nazwa_galerii'] a po wybraniu którejś z opcji przesyła odpowiadającą jej zmienną $row['id']. I wszystko jest ok. Chciałbym jednak dalej używać też zmiennej $row['nazwa_galerii'].
Jak można zrobić aby używać dalej też ['nazwa_galerii'].

Prośba o wyjaśnienie i 2 zdania komentarza.
Dzięki.

  1. <?php
  2. $query='SELECT * FROM galeria';
  3. $result = mysql_query ($query);
  4.  
  5.  echo('<form method="post" type="text" action="index.php?xxxxxxxxxxxxxxxxx">');
  6. echo ('<table>');
  7. while ($row = mysql_fetch_array($result)) 
  8.  {
  9. echo('<tr><td><input type="radio" name="id" value='.$row['id'].' />
  10. </td><td width=500 style="text-align:left">'.$row['nazwa_galerii'].'</td></tr>');
  11.  }
  12. echo('<tr><td colspan="2"><input type="submit" name="wyslij" value="Wyświetl zawartosc"></td></tr>');
  13. echo ('</table>');
  14. echo('<hr></form>');
  15. ?>
misty
do przesylania zmiennych w formularzu masz dwie podstawowe metody:
POST i GET.
POST:
  1. <form action='nazwa_strony.php' method='POST'><input type='hidden' name='nazwa_galerii'
  2. value='$nazwa_galerii'><input type='submit' name='wyslij' value='wyslij></form>

na drugiej stronie zas pobierasz zmienna postem, czyli na poczatku piszesz:
  1. <?php
  2. $nazwa_galerii=$_POST['nazwa_galerii'];
  3. ?>


GET:
  1. <form action='nazwa_strony.php?nazwa_galerii=$nazwa_galerii'><input type='submit' name='wyslij' value='wyslij></form>


a w drugim pliku:
  1. <?php
  2. $nazwa_galerii=$_GET['nazwa_galerii'];
  3. ?>



Pzdr!
piano
Jeszcze raz... Wszytko jasne, ale nie o to do końca mi chodzilo.

Zapisując taki kod :

  1. <?php
  2. echo('<form method="post" type="text" action="admin.php?xxxxxxxxxxxxxxx">');
  3.  
  4. echo ('<table>');
  5. while ($row = mysql_fetch_array($result)) 
  6.  {
  7. echo('<tr><td><input type="radio" name="id" value='.$row['id'].' /></td>
  8. <td width=500 style="text-align:left">'.$row['nazwa_galerii'].'</td>
  9. <td><input type="hidden" name="nazwa_galerii" value='.$row['nazwa_galerii'].'/></td> 
  10. </tr>');
  11.  }
  12. echo('<tr><td colspan="2"><input type="submit" name="wyslij" value="Wyświetl zawartosc"></td></tr>');
  13. echo ('</table>');
  14. echo('<hr></form>');
  15.  
  16. $katalog=($_POST['id']);
  17. $xxx=($_POST['nazwa_galerii']);
  18. ?>


...zmienna $katalog jest ok, ale zmienna $xxx wyświetla mi zawsze taką samą (chyba ostatnią pobraną z tabeli bazy danych).
misty
a powiedz mi wpierw, co to jest:
  1. <?php
  2. action="admin.php?xxxxxxxxxxxxxxx">);
  3. ?>

a dokladnie chodzi mi o ten fragment:
  1. <?php
  2. ?xxxxxxxxxxxxxxx
  3. ?>
piano
Hej. guitar.gif
Poprostu ukryłem fragment adresu. Cała linika wygląda tak :


  1. <?php
  2. echo('<form method="post" type="text" action="admin.php?pokazx=galeria/galeria_fot_del">');
  3. ?>
misty
wiesz co, wyswietla Ci sie ostatnia wartosc dlatego, ze Twoj przycisk znajduje sie poza petla while. no a po zamknieciu petli pamietana jest ostatnia wartosc z bazy.
przycisk musi wiedziec o ktora nazwa_galerii Ci chodzi. wiec moze jakis check_box ? lub lista rozwijana? bo teraz rozumiem ze po prostu wyswietlasz liste nazw galerii, a na dole masz przycisk 'Wyswietl zawartosc'. to skoro przycisk jest poza petla to pokaze sie ostatnia wartosc. mozesz tez przycisk wstawic do petli, wtedy przy kazdej wartosci bedziesz go mial i wtedy kazdy powinien wysylac odpowiedni id i nazwe_galerii.
Czy moze tym jednym przyciskiem chcesz wyslac wszystkie nazwy galerii naraz??
piano
Hej. guitar.gif
misty, dzięki za samozaparcie ale to jeszcze nie to.

W skrócie (bo tak będzie chyba najlepiej) :

Mamy baze danych:
[id] [nazwa_galerii]

1. Moim celem jest wyświetlenie całej listy kolumny [nazwa_galerii] - i to się udaje.
2. Oraz wyświetlenie jednego przycisku value="Wyświetl zawartosc". - i to się udaje.
3. Jeśli użytkownik wybierze którąś z galerii to chcę przesłać do nastęnego pliku action="admin.php?xxxxxxxxxxxxxxx" dwie zmienne : wybraną galerię i odpowiadające mu id z bazy danych, tzn. $_POST['nazwa_galerii'] i $_['id'], - i tu jest problem ponieważ wysyła mi tylko jedną zmienną czyli to co mam zapisane w linice :

  1. <?php
  2. <input type="radio" name="id" value='.$row['id'].' />
  3. ?>

czyli zmienną $_POST['id']

a jak w pętli dodałem linike:
  1. <?php
  2. <input type="hidden" name="nazwa_galerii" value='.$row['nazwa_galerii'].'/>
  3. ?>


to jako zmianna $_POST['nazwa_galerii'] wyświetlana jest ostatnia wartość  ['nazwa_galerii'] z tabeli a nie ta która odpowaida wybranemu we wcześniejszej linice id.

Prośba o komentarz do tego...
misty
wiesz co, odgrzebalam moj stary skrypt ktory robi chyba to o co Ci chodzi. tj w moim przypadku akurat pobieralalam z bazy danych daty, by byly one umieszczone w tabeli (razem z jakimis innymi rzeczami) i jak user klikal na date to musiala sie na inna strone przekazac ta data i jej id. korzystalam z metody GET
oto ten fragment:
  1. <?php
  2. $pobierz_daty=pg_query($polaczenie, "select * from t_data;"); //stad mialam daty i ich id
  3. //tabela
  4. echo "<table><td>daty</td>";
  5. while ($row=pg_fetch_array($pobierz_daty))
  6. {
  7.  foreach ($row as $data)
  8. $daty=$row['data'];
  9. $daty_id=$row['id'];
  10. echo "<tr><td><a href='#' onClick='javascript:window.open(\" wykresy.php?rodzaj_wykresu=1&daty=$daty&data_badania_id=$data_badania_id \" , \"okienko\" , \"toolbar=no , width=620, height=420\");'>$daty</a></font></td>"
  11. }
  12. echo "</table></center><br>";
  13. ?>


na stronie wykresy.php musialam tylko na poczatku wywolac zmienne jako GET:
  1. <?php
  2. $daty=$_GET['daty'];
  3. $data_badania_id=$_GET['data_badania_id'];
  4. ?>


mam nadz ze cos Ci to pomoze.. w kazdym razie u mnie cos takiego zadzialalo.
Pzdr!
piano
Dzięki misty,
O coś podobnego chodziło. Małe przeróbki i jest ok.


misty
smile.gif
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.