Miten voisi PHP:llä tai JS:llä vaihtaa form -tagin action -attribuuttia niin, että se määräytyisi selectin optionin valuen mukaan ja lähettää tiedot sitten sinne? Öhh...
<form method="post" action="1.php"> Missäs käsitellään tiedot? <select> <option value="1">1.php <option value="2">2.php jne jne </select> <input type="submit"> </form>
Eli jos käyttäjä valitsee vaihtoehdon 1.php, jonka arvo on 1, menee kaikki POSTit 1.php:seen, jos taas vaihtoehto 2.php on parempi, menee tiedot 2.php:seen.
Miten?
Duunaat posti_valkkaa.php fileen jossa katsotaan muuttujan "minne" sisältö. Sitten ohjataan oikeaan käsittelijään...
<form method="post" action="posti_valkkaa.php"> Missäs käsitellään tiedot? <select name="minne"> <option value="1">1.php <option value="2">2.php jne jne </select> <!-- Ymppää tähän lisää sisältöä formillesi, mitä nyt ikinä tahdotkaan kysyä :P --!> <input type="submit"> </form>
<?php tutkitaan "minne" muuttujaa... jos arvo on 1: siirry posti1 ja tunge kaikki muut muuttujat mukaan... jos arvo on 2: siirry posti2 ja tunge kaikki muut muuttujat mukaan... ?>
En nyt jaksanut väsätä valmista php-koodia kun en muista ihan tarkalleen mite php:ta koodattiin ku olen viimeks koodannu sitä mont viikkoa sitte. Etit vaan $_POST taulusta ne muuttujat... :P
no silloinhan tuo ei menisi POST -datana filulle johon sen haluan menevän...
Siis laitat ne mukaan POSTina kun kutsut sitä seuraavaa filettä...
EDIT: ei menekään suoraan vaan kiertää tuon php-skriptin kautta
öhh.. miten ne "laitetaan menemään POSTina"?!
Eiköhän tuo olisi kuitenkin yksinkertaisempaa Javascriptillä:
Aluksi tuollainen funktio
function toiminto(filu){ document.forms.forminnimi.action=filu }
ja sitten vain radiobuttoneihin onclick
<input type="radio" onclick="toiminto(this.value)" value="sivu.php">jokusivu
Parempi ratkaisu on laittaa actioni osottamaan skriptiin, joka sitten lähettää datan eteenpäin sille oikealle käsittelyskriptille siihen optionin arvoon perustuen. Toimii meillä javaskriptittömilläki.
Blaze kirjoitti:
Parempi ratkaisu on laittaa actioni osottamaan skriptiin, joka sitten lähettää datan eteenpäin sille oikealle käsittelyskriptille siihen optionin arvoon perustuen. Toimii meillä javaskriptittömilläki.
Tuota juuri yritin selittää joskin selitykseni ei ollut kovin hyvä :P
No minä ainakin ymmärsin selityksesi, mutta kaikkia PHP:n ihanuuksia en osaa.
Ajattelinkin ekana laittaa jonkin formin kuten...
<form method="post" action="<?php echo $_POST['minne']; ?>">
...mutta sehän tarkottaisi, että formi pitäisi lähettää ennenkuin lähetyksen arvon voisi tarkistaa, jotta formi voitaisiin lähettää... voi ei, sekosin...
Onko JavaScripti ainoa mahdollisuus? (ei saa olla ;) )
Postita se formi vaikka muuli.php:lle, jossa sitten tarkistat tuon minne muuttujan arvon ja ohjaat (luulisin, että sen käsittelyskriptin includoiminen hoitaa tuon homman) sopivalle käsittelyskriptille (Miksi niitä muuten pitää olla monta? Helpompi olisi varmasti tunkea kaikki samaan tiedostoon).
No tämä sen takia, koska skripti...
1. ei ole minun tekemäni
2. ei ole minun hallinnassani
3. ei ole minun serverilläni
4. en tiedä riviäkään siitä
5. on ASP -koodia
ja formin äksönin muuttamista tarvitsen, koska käyttäjä saisi valita mihin hän kirjautuu, minne1.abc.com/login.asp, minne2.abc.com/login.asp jne jne.
...ja koska ASP:stä en tajua himputin vertaa, niin luulisi, että vain POSTit käy...
Saisiko apua?
Laita ensin kysely minne kirjaudutaan ja sitten se johtaa varsinaiselle kirjautumissivulle.
Aihe on jo aika vanha, joten et voi enää vastata siihen.