Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: combon muutos sessioon

Sivun loppuun

B_R_H [05.03.2009 11:00:26]

#

Tervehdys,

Mulla on lomakkeella comboboxi, jossa on kannasta haettuna 1-n arvoa.
Lomakkeella on useampi paikka, josta päästään javascriptillä eri lomakkeille, joista parissa tarvitaan päälomakkeelta lähdettäessä annettua arvoa. Tietoa kuljetetaan php:n session muuttujassa.

Ongelma:
Jos comboboxin arvoa on muutettu ja mennään javascripillä aukeavalle lomakkeelle, miten saan tuo muutetun arvon sessioon talteen? Mitään submittiähän tuolle lomakkeelle ei silloin tehdä.

combon määrittely:
<select name=arvo>
<option>Tieto 1</option>
<option>Tieto 2</option>
<option>Tieto 3</option>
</select>

Miten lomakkeelta lähdetään...
href="javascript:locate()"

Ideoita??

Juhko [05.03.2009 13:29:57]

#

Aivan varmasti on parempikin tapa, mutta voit ainakin tehdä vaihda_session.php-nimisen tiedoston, josta palataan sitten takaisin tälle lomakkeelle. Kun selectin arvoa vaihdetaan, lomake lähetetään.

<form name="lomake" action="vaihda_session.php" method="post">
<select name="arvo" onChange="lomake.submit();">
   <option>Tieto 1</option>
   <option>Tieto 2</option>
   <option>Tieto 3</option>
</select>
</form>

Ja vaihda_session.php olisi tämäntapainen:

<?php
session_start();
$_SESSION["ValittuArvo"] = $_POST["arvo"];
?>

Poistakaa tämä viesti, jos se on turha.

tsuriga [05.03.2009 14:28:24]

#

Jos et halua siirtyä mihinkään niin käytä AJAXia.

//my.js
var sel = document.getElementById('arvo');
var value = sel.options[sel.selectedIndex].value;
var url = "update.php?value=" + escape(value);
//tähän AJAX-kutsu vaikkapa valitsemallasi frameworkilla/toolkitillä

//lomake.php
<select name="arvo" onchange="updateSession();">

//update.php
<?php

session_start();
$_SESSION['var'] .= $_GET['value'];

?>

En valitettavasti pysty nyt todentamaan koodin toimivuutta. Jos escape-funkkari ei toimi UTF-8:n kanssa niin kokeile Webtoolkitin utf8-encode/decodea.

Juhko [05.03.2009 16:55:30]

#

Joo, AJAX on parempi vaihtoehto. Kerron silti, että unohdin omasta viestistäni unohtui header("Location: sivu.php");

B_R_H [05.03.2009 19:11:22]

#

Kiitti ideoista!

Juhko: Mitenkäs tässä sun esimerkissä päästään takaisin alkuperäiselle lomakkeelle?

Juhko [05.03.2009 19:14:16]

#

Kirjoitin sen edelliseen viestiini, koska se unohtui alkuperäisestä, eli header("Location: sivu.php")

tsuriga [05.03.2009 19:49:05]

#

Ja siihen headeriin mielellään se absoluuttinen URL kun speksi sitä kerran tahtoo.

B_R_H [06.03.2009 16:30:03]

#

Kivasti luonnistui.

Kiitos avusta!


Sivun alkuun

Vastaus

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

Tietoa sivustosta