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??
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.
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.
Joo, AJAX on parempi vaihtoehto. Kerron silti, että unohdin omasta viestistäni unohtui header("Location: sivu.php");
Kiitti ideoista!
Juhko: Mitenkäs tässä sun esimerkissä päästään takaisin alkuperäiselle lomakkeelle?
Kirjoitin sen edelliseen viestiini, koska se unohtui alkuperäisestä, eli header("Location: sivu.php")
Ja siihen headeriin mielellään se absoluuttinen URL kun speksi sitä kerran tahtoo.
Kivasti luonnistui.
Kiitos avusta!
Aihe on jo aika vanha, joten et voi enää vastata siihen.