marczak
16.05.2010, 13:08:55
Witam mam problem. Generuje sobie selecta z bazy danych tylko nie wiem jak zwrocic jego obecnie zaznaczona wartosc. Oto moj kod:
<form name "zmien" method="POST" action="tabela.php"/>
Kupujący:
<input type="text" name="nick" value="" class="pola"/><br/><br/>
Jest kasa:
<input type=text name="kasa" size="3" maxlength="3" class="pola"/><br/><br/>
Ilość sztuk:
<input type=text name="ilosc" size="6" maxlength="6" class="pola"/><br/><br/>
Dodatkowe info:
<input type=text name="info" class="pola"/><br/><br/>
Klucz Kategoria <?php $query = "SELECT `nazwa` FROM `kategorie`";
$result = mysql_query($query);
print '<SELECT name="item">';
while ($line = mysql_fetch_array($result))
{
foreach ($line as $value)
{
print "
<OPTION value='$value'"; }
}
Klucz
<?php
echo $_POST["item"];
?>
<input type="submit" name="wyslij" class="buttony" value="dodaj"/>
wydawalo mi sie ze selecta wartosc zwroce poprzez :
$_POST['item'];
Jednak brak wartosci ;/
Chce poprostu do jakiejsc zmiennej przypisac wartosc ktora jest obecnie wybrana z listy.
Prosze o pomoc
tehaha
16.05.2010, 13:12:41
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
16.05.2010, 13:20:49
Cytat(marczak @ 16.05.2010, 14:08:55 )

wydawalo mi sie ze selecta wartosc zwroce poprzez :
$_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
16.05.2010, 13:32:08
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
16.05.2010, 13:37:33
Google.pl => javascript dynamic selects lists
tehaha
16.05.2010, 13:42:51
nie no po co ajaxa.. akurat w tej sytuacji wystarczą 3 linijki javascript, obadaj ten przykład:
<script type="text/javascript">
function update_current_select()
{
var select_value = document.getElementById("item").value;
var show_value = document.getElementById("show_value");
show_value.innerHTML = "wybrano: "+select_value;
}
</script>
<select id="item" onchange="java script: update_current_select();">
<option value="jeden">1</option>
<option value="dwa">2</option>
<option value="trzy">3</option>
</select>
<span id="show_value">
</span>
marczak
16.05.2010, 13: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.
pedro84
16.05.2010, 14:02:37
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
16.05.2010, 14:05:49
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
16.05.2010, 14:13:18
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
16.05.2010, 14:20:26
<?php $query = "SELECT `nazwa` FROM `kategorie`";
?>
<script type="text/javascript">
function update_current_select()
{
var select_value = document.getElementById("item").value;
var show_value = document.getElementById("show_value");
show_value.innerHTML = "wybrano: "+select_value;
}
</script>
<select id="item" onchange="java script: update_current_select();">
<?php
{
foreach ($line as $value)
{
print "<OPTION value='$value'"; }
print ">$value</OPTION>"; }
?>
</select>
<span id="show_value">
</span>
takie coś powinno zadziałać?
I jeszcze w jaki sposób zwrócić wybraną wartość?
$zmienna = ?
tehaha
16.05.2010, 14:22:20
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
16.05.2010, 14:28:28
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
16.05.2010, 14:32:59
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.