Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: formin äksönin muuttaminen

Sivun loppuun

SysRq868 [20.09.2004 18:47:05]

#

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?

Meitsi [20.09.2004 18:55:08]

#

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

SysRq868 [20.09.2004 19:01:22]

#

no silloinhan tuo ei menisi POST -datana filulle johon sen haluan menevän...

Meitsi [20.09.2004 19:07:23]

#

Siis laitat ne mukaan POSTina kun kutsut sitä seuraavaa filettä...

EDIT: ei menekään suoraan vaan kiertää tuon php-skriptin kautta

SysRq868 [20.09.2004 19:20:23]

#

öhh.. miten ne "laitetaan menemään POSTina"?!

Tempfile [20.09.2004 19:28:22]

#

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

Blaze [20.09.2004 20:03:00]

#

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.

Meitsi [20.09.2004 23:04:56]

#

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

SysRq868 [21.09.2004 16:48:09]

#

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 ;) )

Blaze [21.09.2004 17:09:59]

#

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

switch($_POST['minne']){
  case 'hukkaan':
    include('hukka.php');
    break;
  case 'piiloon':
    include('piilo.php');
}
//jne

SysRq868 [21.09.2004 17:27:10]

#

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.

SysRq868 [22.09.2004 15:06:35]

#

...ja koska ASP:stä en tajua himputin vertaa, niin luulisi, että vain POSTit käy...

SysRq868 [25.09.2004 17:25:43]

#

Saisiko apua?

Meitsi [25.09.2004 17:53:40]

#

Laita ensin kysely minne kirjaudutaan ja sitten se johtaa varsinaiselle kirjautumissivulle.


Sivun alkuun

Vastaus

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

Tietoa sivustosta