Avatar billede nemlig Professor
17. marts 2007 - 22:20 Der er 9 kommentarer og
1 løsning

Form driller

Hej. Jeg kan ikke gennemskue det.
Denne kode, henter 1 inputfelt "$_POST['navn']" fra fil1.php og ind denne fil, som hedder "ret_aflaes2.php"
Her tjekkes for fejl, og hvis ingen fejl, der mulighed for at acceptere eller gå tilbage.
Ved accept skal MySQL opdateres, men det sker med et tomt felt, og jeg bliver mødt med fejlen, at Navne-feltet skal udfyldes.
Jeg mener, at $navn nede i formen 0-stilles, når der trykkes på acceptere. Hvordan får jeg den til at huske indholdet eller er der en anden løsning??

<?php
include("top.php");
if(check()){

$navn = $_POST['navn'];
$submit_accept = $_POST['submit_accept'];

if ($submit_accept) {
$sql = "UPDATE tabelnavn SET
navn='".$navn."'
WHERE ID = {$_SESSION['id_ret_aflaes']}"; //Id hentet fra fil1.php
database($sql);
echo "Du blev indført i vores database!";
}

if (!$navn) {
$fejl = "$fejl Du skal udfylde feltet \"Navn\".<br>";
}
if($fejl) {
echo "$fejl<br><input type=\"button\" onClick=\"java script:history.go(-1)\" value=\"Tilbage\"><br>"; exit;
}

if(!$fejl) {
echo "Acceptere du disse data for at være dine?<br>
<form action='ret_aflaes2.php' method='POST' name='accept2'>
Er dette dit navn?: $navn<br>";

echo "
<input type='submit' value='Jeg accepterer' name='submit_accept'><br>
</form>";
echo "<FORM><INPUT TYPE='button' VALUE='Tilbage' onClick='history.go(-1);return true;'> </FORM>";
}

}else{
    echo "Du skal være logget ind for at se denne side";
}
include("bund.php");
?>
Avatar billede erikjacobsen Ekspert
17. marts 2007 - 22:41 #1
Du snakker om 3 sider logiske sider:
1) Med en form, han taster sit navn <form method="post"...>
2) Der tjekkes noget og han skal acceptere
3) Navnet indsættes i databasen

Men du får vel ikke navnet med fra 2) til 3) ... nok nemmest at have en ny form (Ja, med <form ...> og det hele), og så skrive hans navn fra 1) i et hidden felt. Det vil du kunne aflæse på 3)
Avatar billede erikjacobsen Ekspert
17. marts 2007 - 22:42 #2
Eller lavet tjekket i Javascript på 1) ?
Avatar billede nemlig Professor
17. marts 2007 - 22:59 #3
Jeps - din opstilling af forløbet er fuldstændig korrekt.
Koden er forenklet. Jeg er umiddelbart ked af javascript til alt kontrol, da jeg har ret så mange felter, bla. noget moduluskontrol, som er lavet i PHP.
Det har i øvrigt virket, da jeg brugte nogle input-felter i "form-afsnittet" nederst.
Men jeg skal ikke bruge input-felter og tænkte, at det må kunne løses på anden vis.
Kan ikke helt gennemskue det, hvorfor jeg vil blive mægtigt glad for et forslag til konkret kode.
Avatar billede erikjacobsen Ekspert
17. marts 2007 - 23:03 #4
Konkret: skriv navnet fra 1) i et hidden felt, <input type="hidden" ..> på 2) og aflæse det på 3)

Eller gem det i en sessionsvariabel
Avatar billede nemlig Professor
17. marts 2007 - 23:18 #5
Er det korrekt forstået, at alle variabler nulstilles, når der trykkes på en "Submit" i en "Form"?
Sessionsvariabel er jeg lidt i tvilv om, men mener at der sådan her:
$_SESSION['navn'] = $navn;
Jeg er ked af hidden input-felter, da jeg skal lave en del opstilinger i skemaer. SÅ tror jeg, det er nemmere med Sessionsvariabler.
Avatar billede erikjacobsen Ekspert
17. marts 2007 - 23:22 #6
Der er som sådan ikke noget, der nulstilles. Reglen er blot, at du kun kan aflæse $_POST og $_GET fra den umiddelbart foregående side.

Det ser rigtig ud med din session.
Avatar billede nemlig Professor
18. marts 2007 - 09:50 #7
OK - har det til at køre nu. Jeg valgte løsningen med Sessions.
Tak for inputtet - send lige et svar.
Avatar billede erikjacobsen Ekspert
18. marts 2007 - 09:57 #8
Jeg samler slet ikke på point, tak.
Avatar billede mcardle Nybegynder
18. marts 2007 - 12:44 #9
Luk spørgsmålet
Avatar billede nemlig Professor
18. marts 2007 - 13:08 #10
Lukker og slukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester