Mulla on tossa omassa koodissa alasvetovalikko, johon haetaan kannasta tietyn taulun datat. OK tähän asti. Sitten myöhemmin koodissa (samassa filessä) yritän ottaa sen valinnan muuttujaan ja pistää sen kannan toiseen tauluun:
$tunnus = $_POST[id]; //id siis sen valikon nimi
Eipä sitten onnistukaan: $tunnus onkin tyhjä. Mikä tossa nyt voi olla pielessä?
id lainausmerkkeihin. Nyt yrität hakea $_POST-taulukosta (määrittelemättömän) vakion id indeksoimaa solua.
Tosin PHP muuttaa määrittelemättömät vakiot merkkijonoiksi, joten tuon koodin pitäisi periaatteessa toimia.
Ongelma on siis ehkä muualla. Saako muuttuja $tunnus oikean arvon, jos kirjoitat tuon koodin aivan skriptin alkuun?
Jos ongelma ei ratkea, niin näytä vähän enemmän lomakkeen ja skriptin koodia.
Joo, kyllähän totakin on jo tullu kokeiltua lainausmerkeillä ja ilman, mutta tyhjä se on silti. Nyt alkaa jo vähän ihmetyttää.
Vika lienee sitten formissa. Näytäppäs sen koodia.
Formin lähettämiä tietoja voi tutkia vaikka näin:
Vika ei siis ole antamassasi koodissa, vaan jossain muualla. Eli lisätietoja tarvittaisiin..
Joo, tossa formissa se vika on - ja päässä kans :D Ei nyt taas oikein säteile... Mä olin tehnyt ton formin ihan päin... En kehtaa ees heittää tota koodia :D Ei mistään löytys jotain hyvää mallia ton formin oikeaoppiseen tekoon? Siis semmosta, jossa haetaan taulusta valintalistaan n-1 tietuetta. Vieläpä niin, että se itse valintakin onnistuisi :) Alkaa pää hajota tän kanssa. Taas ihan simppeli ongelma, mutta ei...
Month <select name="month" onchange="submitDateSelectorForm()"> <?php for ($i = 1; $i < 13; $i++) { echo "\n<option value=\"$i\""; if ($i == $_GET['month'] or (empty($_GET['month']) && $i == date("m"))) { echo " selected"; } echo ">$i</option>"; } ?> </select>
Tuollaisen vasta eilen kirjoittelin omaan projektiini :) Ei varmaankaan ihan mitä haettiin, mutta ideahan tuosta käy ilmi. Eli niin monesti for-silmukka pyöräyttää kuin vaihtoehtoja on. Ja tuossa on laitettu vielä selected-määre, mikäli tiedot on jo kerran lähetetty (ei tarvitse käyttää jos formia ei ole myös vastaanottosivulla).
Jos haet tietoa Mysql-kannasta, niin esim. rakenne
<?php while ($row = mysql_fetch_row($kyselytulokset) { echo "<option value=\"{$row[0]}\">{$row[0]}</option>"; } ?>
voisi olla ihan passeli.
Jees, kiitosta. Nytpä sain pelittää :)
Vielä tähän sen verran jatkoa, että jos vaikka tällä tavalla:
$tunnus = $_POST[id]; //id siis sen valikon nimi
otan ton valintalistan valinnan tohon muuttujaan. Mutta siinä valintalistassa on tulostettuna vaikka kaksi eri tietoa taulusta. Eli nyt tossa muuttujassa on siis ne molemmat sarakkeet taulusta. Saako tosta muuttujasta nyt "irti" vain sen toisen eli käytännössä vain tunnuksen. Eli siis haluan tulostaa siihen valintalistaan vaikka taulusta id:n ja nimen, mutta haluan ottaa tosta muuttujasta vain ton id:n ja heittää sen toiseen tauluun.
Mahtaakohan tuo onnistua?
Viimeisen kerran, se on
$tunnus = $_POST["id"];
ja tuskin kukaan jaksaa testata sinun ideoitasi jota vain sinä tarvitset. Vastaukseksi annan "En minä tiedä, kokeile"
Örh.. siis tämäkö?
valikkosivu.html
<form method="POST" action="filegetti.php"> <table> <br><td>ID: </td><td><input type="text" name="idi">17</td></br> <br><td>Kuka: </td><td><select name="valinta"> <option>Eka-veka</option> <option>Toka-moka</option> <option>Koka-loka</option></select></td></br> </table> </form>
filegetti.php
$idiamin = $_POST["idi"]; $lemmitty = $_POST["valinta];
Aihe on jo aika vanha, joten et voi enää vastata siihen.