Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Onkelmaa $_POST:in kanssa

Sivun loppuun

Apina [24.10.2006 09:56:12]

#

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ä?

Blaze [24.10.2006 10:01:55]

#

id lainausmerkkeihin. Nyt yrität hakea $_POST-taulukosta (määrittelemättömän) vakion id indeksoimaa solua.

Antti Laaksonen [24.10.2006 10:07:45]

#

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.

Apina [24.10.2006 10:08:27]

#

Joo, kyllähän totakin on jo tullu kokeiltua lainausmerkeillä ja ilman, mutta tyhjä se on silti. Nyt alkaa jo vähän ihmetyttää.

El-Ejecutor [24.10.2006 10:23:43]

#

Vika lienee sitten formissa. Näytäppäs sen koodia.

kayttaja-2791 [24.10.2006 11:45:51]

#

Formin lähettämiä tietoja voi tutkia vaikka näin:

<?php
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>

Vika ei siis ole antamassasi koodissa, vaan jossain muualla. Eli lisätietoja tarvittaisiin..

Apina [24.10.2006 12:06:18]

#

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...

kayttaja-2791 [24.10.2006 12:13:51]

#

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.

Apina [24.10.2006 14:04:20]

#

Jees, kiitosta. Nytpä sain pelittää :)

Apina [30.10.2006 09:43:52]

#

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.

Apina [31.10.2006 10:05:17]

#

Mahtaakohan tuo onnistua?

Lebe80 [31.10.2006 10:32:04]

#

Viimeisen kerran, se on

$tunnus = $_POST["id"];

ja tuskin kukaan jaksaa testata sinun ideoitasi jota vain sinä tarvitset. Vastaukseksi annan "En minä tiedä, kokeile"

HellCome [01.11.2006 13:39:09]

#

Ö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];

Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta