Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: post ei saa arvoja

Sivun loppuun

B_R_H [07.05.2009 10:14:09]

#

Terve taas,

Liittyy tuohon edelliseen, mutta pistin kuiten uuden aiheen:
https://www.ohjelmointiputka.net/keskustelu/19093-sisäkkäiset-formit

Nyt muutin formin (myform) sisälle linkin:

...
<input type="hidden" name="tunniste" value="0" />  <!-- tässä pitäisi kulkea
...
// tehdään linkki
?>
<a href="javascript:muutarivi('<?=$rivinro;?>')" title="Muuta rivin tietoja">Muutos</a>
<?php

Kutsuttava funktio on muotoa:

function muutarivi(rivi) {
    document.myform.tunniste.value=rivi;
    alert(document.myform.tunniste.value); /*arvo näkyy tässä ok*/
    window.location = "index.php?do=1";
}

ja tästä kun jatketaan

$muuta = $_POST['rivi'];
echo $muuta;
// tulostaa nullin eli ei välity.

Kysymys: Miten tuo siirtyminen funktiossa pitäisi tehdä windows.locationin sijaan?

kayttaja-2791 [07.05.2009 10:33:57]

#

Jos nyt oikein käsitin, niin laukaisemalla formin submit-metodi:

document.myform.submit();

Jos nyt koodi oli oikein, niin tuon pitäisi tehdä siis sama toiminne kuin käyttäjän painaessa formin submit-nappia.

B_R_H [07.05.2009 10:48:06]

#

Noin määkin sen alunperin tein, mutta ongelma on se, että formin submitti

index.php?do=12

on eri kuin tämä mihin nyt pitäisi päästä.

index.php?do=1

Merri [07.05.2009 11:04:07]

#

Tämänhetkinen järjestelysi on aivan liian riippuvainen JavaScriptistä. Olet oikeastaan tehnyt asian itsellesi paljon vaikeammaksi kuin sen pitäisi olla.

<a href="index.php?do=1&amp;rivi=<?=$rivinro;?>" title="Muuta rivin tietoja">Muokkaa</a>

Toki se vaihtuu $_GETin puolelle, mutta ei pitäisi olla mikään mahdottomuus vaihtaa. Lisäksi toimii ilman JavaScriptiä. Yksinkertaista, helppoa ja toimivaa.

B_R_H [07.05.2009 11:09:00]

#

Yeps olet oikeassa - ongelma lähinnä se, kun koodia on x-tuhatta riviä ja tarttis saada toimimaan samoin kuin n50 eri paikasta :-(

Merri [07.05.2009 11:20:55]

#

Voit selkeyttää hommaasi jakamalla osasia useampaan eri tiedostoon, plus tutkimalla että mitä samanoloisia koodinpätkiä käytät niin moneen kertaan, että asiaa varten kannattaa luoda oma funktio. Mitä lyhyempänä pystyt tiedoston sisällön pitämän, sitä helpompi sitä on ymmärtää ja ylläpitää. Runsaat kommentitkaan eivät ole koskaan pahitteeksi.

Lisäksi tietoturvan kannalta on parempi, että jokaista tapausta varten käsitellään minimaalinen määrä muuttujia, liian suurella määrällä voi jäädä jotain huomaamatta ja saattaa siten mahdollistaa aukon syntymisen

Metabolix [07.05.2009 11:24:22]

#

Mikset sitten muuta sitä actionia JS:llä?

document.myform.action = "index.php?do=KEKSI_JOTAIN_FIKSUMPAA" + "&reason=NUMEROITA_ET_KOHTA_ITESKAAN_YMMARRA";
document.myform.submit();

B_R_H [07.05.2009 11:46:03]

#

Niinpä siinä se!
Kaunis kiitos Metabolix - sehän oli helppo kun osaa.

Nyt toimii juuri niinkuin oli tarkoituskin. En osaanut vaan hakea oikella hakusanalla.


Sivun alkuun

Vastaus

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

Tietoa sivustosta