Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] przekazywanie wartosci z SELECT do kolejnej podstrony
Forum PHP.pl > Forum > PHP
Jimmy83
Witam,
Mam pewien problem, potrzebuje wybrc kolor z listy, ktora wyswietlana jest przy pomocy petli while, ale zawsze zwraca mi ostatnia opcje z SELECT. Petla jest w innej petli, ktora pobiera informacje z bazy danych. Informacje do select takze pochodza z bazy danych. Probuje uzyc sesji zeby przeniesc informacje z select na nastepny ekran

  1. <?php
  2. print '<SELECT name="kolor" STYLE="background-color: #DBBFFD;">';
  3. $zapytanie2 = "select * from kolory";
  4. $wykonaj2 = mysql_query($zapytanie2);
  5. while($wiersz2 = mysql_fetch_array($wykonaj2))
  6. {
  7. print '<OPTION VALUE='.$wiersz2["kolor"].'>'.$wiersz2["kolor"];
  8. print '</OPTION>';
  9. }
  10. print '</SELECT>';
  11. print $_SESSION['kolor'];
  12. $kolor = $_SESSION['kolor'];
  13. print $kolor;
  14. ?>

Zarowno przypisanie zmiennej kolor nie dziala jak i wypisanie elementu sesji.
Moze cos zle jest z ' albo z "
Oczywiscie na poczatku jest session_start();
Jezeli przypisze wartosc jeszcze w petli to dostaje zawsze ostatni element. Czy musi byc tu form? (w IE psuje caly uklad obiektow)
b_chmura
a gdzie przypisujesz sesji kolor jej kolor?
Fixus
Kod
print $_SESSION['kolor']; <-- $_SESSION['kolor'] nie ma żadnej wartości
    $kolor = $_SESSION['kolor']; <---- do zmiennej $kolor nic nie przypisujesz więc i do zmiennej $_SESSION['kolor'] nic nie przypiszesz
    print $kolor;  <--- patrz punkt 1 i 2
Jimmy83
Wlasnie i tu jest problem,
probowalem to zrobic po zamknieciu select ale wtedy wypisuje mi sie ostatni kolor wpisywalem cos takiego

  1. <?php
  2. while($wiersz2 = mysql_fetch_array($wykonaj2))
  3. {
  4. print '<OPTION VALUE='.$wiersz2["kolor"].'>'.$wiersz2["kolor"];
  5. print '</OPTION>';
  6. }
  7. print '</SELECT>';
  8. $_SESSION['kolor'] = $kolor
  9. print $_SESSION['kolor'];
  10. ?>

gdzie $kolor powinno pochodzic z select, ktory ma name=kolor
Jak mam wyciagnac wybrany element. Element ostatni sie wypisuje jezeli zarzadam go w nastepnym kroku(stronie) Problem w tym to jak zrobic zeby po wyborze odpowiedniego koloru na nastepnej stronie byl ten wybrany kolor a nie ostatni z listy
b_chmura
  1. <?php
  2. if(empty($_POST['kolor'])
  3. {
  4. $_SESSION['kolor'] = 'Najpierw go wybierz';
  5. }
  6. else
  7. {
  8. $_SESSION['kolor'] = $_POST['kolor'];
  9. }
  10.  
  11. echo $_SESSION['kolor'];
  12. ?>


wcześniej <select> umieść w <form> z method="post"
Fixus
ale ziomek skoro ty dopiero tworzysz select`a to jak chcesz żeby zmienna $kolor miała jakąś wartość skoro jeszcze nie wysłałeś formularza?
Jimmy83
Dlatego wlasnie pytam czy musze zastosowac form tutaj czy moge to jakos inaczej przeniesc przy pomocy sesji albo jakims innym sposobem. Jak powiedzialem w pierwszym poscie chodzi o to ze w IE formularz za bardzo rozrzuca elementy i nie wyglada to ladnie. po za tym jezeli uzywam sesji to bede musial uzyc jednej z form action=POST/GET i pobrac dane z formularza w kolejnym kroku? Czy da sie to jakos zrobic przy pomocy sesji?

Przepraszam b_chmura nie zauwazylem twojego posta. Sprawdze czy bedzie to dzialalo. Na razie dziekuje, jezeli pojawia sie jakies problem napisze biggrin.gif
b_chmura
do stylów dodaj
Kod
form
{
  margin: 0px;
  padding: 0px;
}


Wyświetl formularz z rozwijaną listą z wyborem koloru, poniżej warunek który podałem wyżej.
Fixus
Oczywiście, że musisz uruchomić formularz...ew. możesz spróbować zaprząc AJAX`a do tego. A co do formularza pod IE to na szczęście istnieją arkusze stylów
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.