Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wartosc zwracana przez select
Forum PHP.pl > Forum > Przedszkole
marczak
Witam mam problem. Generuje sobie selecta z bazy danych tylko nie wiem jak zwrocic jego obecnie zaznaczona wartosc. Oto moj kod:


  1. <div class="zmiana">
  2.  
  3. <form name "zmien" method="POST" action="tabela.php"/>
  4.  
  5.  
  6. Kupujący: <input type="text" name="nick" value="" class="pola"/><br/><br/>
  7.  
  8. Jest kasa: <input type=text name="kasa" size="3" maxlength="3" class="pola"/><br/><br/>
  9.  
  10. Ilość sztuk: <input type=text name="ilosc" size="6" maxlength="6" class="pola"/><br/><br/>
  11.  
  12. Dodatkowe info: <input type=text name="info" class="pola"/><br/><br/>
  13.  
  14.  
  15. Klucz Kategoria <?php $query = "SELECT `nazwa` FROM `kategorie`";
  16. $result = mysql_query($query);
  17. print '<SELECT name="item">';
  18. while ($line = mysql_fetch_array($result))
  19. {
  20. foreach ($line as $value)
  21. {
  22. print "<OPTION value='$value'";
  23. }
  24. print ">$value</OPTION>";
  25. }
  26.  
  27. print "</SELECT>";?>
  28.  
  29.  
  30. Klucz
  31.  
  32. <?php
  33. echo $_POST["item"];
  34. ?>
  35.  
  36. <input type="submit" name="wyslij" class="buttony" value="dodaj"/>
  37.  
  38. </form>
  39.  
  40. </div>


wydawalo mi sie ze selecta wartosc zwroce poprzez :
  1. $_POST['item'];


Jednak brak wartosci ;/
Chce poprostu do jakiejsc zmiennej przypisac wartosc ktora jest obecnie wybrana z listy.
Prosze o pomoc
tehaha
co Ty właściwie chcesz zrobić? Bo patrząc na linijkę 33 mam wrażenie, jakbyś chciał w czasie rzeczywistym wyświetlać wartość wybraną w liście, wartość wybrana z listy zostanie przypisana do tablicy $_POST dopiero po wysłaniu formularza, jeżeli po wysłaniu formularza wartość nie jest przypisywana to sprawdź podgląd kodu źródłowego na stronie i zobacz czy wartości value="" w liście nie są puste
pedro84
Cytat(marczak @ 16.05.2010, 14:08:55 ) *
wydawalo mi sie ze selecta wartosc zwroce poprzez :
  1. $_POST['item'];


Jednak brak wartosci ;/
Chce poprostu do jakiejsc zmiennej przypisac wartosc ktora jest obecnie wybrana z listy.
Prosze o pomoc

Dobrze Ci się wydawało. Ale zobaczysz tę wartość dopiero po wysłaniu formularza.
marczak
hm... czyli pasowalo by to pewno w ajaxie zrobic. Tak zeby bylo to widoczne przed wyslaniem formularza.

Moze ktos w tym pomoc? jakby to w ajaxie wygladalo?
pedro84
Google.pl => javascript dynamic selects lists
tehaha
nie no po co ajaxa.. akurat w tej sytuacji wystarczą 3 linijki javascript, obadaj ten przykład:
  1. <script type="text/javascript">
  2. function update_current_select()
  3. {
  4. var select_value = document.getElementById("item").value;
  5. var show_value = document.getElementById("show_value");
  6. show_value.innerHTML = "wybrano: "+select_value;
  7. }
  8. </script>
  9. <select id="item" onchange="java script: update_current_select();">
  10. <option value="jeden">1</option>
  11. <option value="dwa">2</option>
  12. <option value="trzy">3</option>
  13. </select>
  14. <span id="show_value">
  15. </span>
marczak
tylko ze teraz mam jakby recznie podawane co chce wybrac. Opcje musza byc wybierane z mysql tak jak w moim kodzie wyżej.
pedro84
Cytat(marczak @ 16.05.2010, 14:59:46 ) *
tylko ze teraz mam jakby recznie podawane co chce wybrac. Opcje musza byc wybierane z mysql tak jak w moim kodzie wyżej.

Ty chyba masz problem z powiedzeniem co chcesz...

Chcesz zaznaczyć w liście select wynik z MySQLa?
marczak
To co mi napisales polowicznie mnie zadowala. Bo bede mogl zwrocic i przypisac do zmiennej to co wybralem jeszcze przed wyslaniem formularza. Tylko jeszcze chce aby to co bedzie w liscie bylo zczytywane z mysql. A nie z "reki". Bo lista w moim przypadku bedzie naprawde duza. I bedzie zalezna od tego co bedzie znajdowac sie w mysq.
tehaha
z jakiej ręki??, podałem Ci najprostszy przykład żebyś go przeanalizował i sobie wstawił do kodu, te pola option może tak samo generować z mysql to nie ma żadnej różnicy

po prostu do tej swojej listy dorzuć id i onchange, skrypt javascript wstaw w header albo gdzieś u góry, a ten span zachowując jego id wstawiasz tam gdzie chcesz mieć to wyświetlone
marczak
  1. <?php $query = "SELECT `nazwa` FROM `kategorie`";
  2. $result = mysql_query($query);
  3. ?>
  4. <script type="text/javascript">
  5. function update_current_select()
  6. {
  7. var select_value = document.getElementById("item").value;
  8. var show_value = document.getElementById("show_value");
  9. show_value.innerHTML = "wybrano: "+select_value;
  10. }
  11. </script>
  12.  
  13.  
  14. <select id="item" onchange="java script: update_current_select();">
  15. <?php
  16. while ($line = mysql_fetch_array($result))
  17. {
  18. foreach ($line as $value)
  19. {
  20. print "<OPTION value='$value'";
  21. }
  22. print ">$value</OPTION>";
  23. }
  24. ?>
  25. </select>
  26. <span id="show_value">
  27. </span>


takie coś powinno zadziałać?
I jeszcze w jaki sposób zwrócić wybraną wartość?
$zmienna = ?
tehaha
jeżeli do value= jest przypisywana wartość to powinno działać, po wysłaniu formularza wartość odbierasz $_POST['item'], oczywiście jeżeli masz ustawione method='post' w formularzu

ale musisz dać jeszcze name='item'
marczak
czyli wartosc zwrocona dalej po wyslanu formularza.
Kurcze. Bo mi chodzi o cos takiego ze robie sobie 2 selecty. I drugi ma byc uzalezniony od tego na co wstazuje 1. Czyli pierwszy np. kategoria ktorego zawartosc jest zczytywana z mysql. I teraz jak wybiore sobie z tego selecta np. "buty" w drugim select-cie powinny mi sie pokazac dane ktore sa z kategorii "buty".

Mam 2 tabele.
Kategorie z polami id i nazwa
i produkty z polami id , id_kat , nazwa

tehaha
o ja najpierw to się naucz precyzować to co chcesz osiągnąć bo ciężko z tym.... w takim razie to poszukaj w google to co CI pedro napisał
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.