Just nu i M3-nätverket
Gå till innehåll

Formuläret fungerar inte


Muppx

Rekommendera Poster

Försöket att lära mig PHP. Hittade några exempel på PHP script på en sida och försökte pröva dem. De såg ut så här:

HTML-kod

 

<form action="action.php" method="POST">

<select name=fruit>

<option>Äpple<option>Apelsin<option>Banan<option>Päron</select>

<input type=submit></form>

 

PHP-kod

 

<html>

<head>

<title>phptest</title>

</head>

<body bgcolor=white>

<? echo "Du valde $fruit<P>"; ?>

</body>

</html>

 

Nu är ju problemet att jag inte kan få det att fungera med den där koden. Det som ska hända är ju att jag väljer en frukt och en ny sida ska komma upp (PHP sidan)och säga vilken frukt jag valde.

Så blir det inte, det enda som kommer upp är "Du valde". Ingen frukt finns med. Det konstiga är att dom har den här funktionen upplagd som man kan pröva och då

fungerar det. Har dom råkat skriva PHP-koden fel av misstag kanske?

 

 

Länk till kommentar
Dela på andra webbplatser

<form action="action.php" method="POST">

<select name=fruit>

<option>Äpple<option>Apelsin<option>Banan<option>Päron</select>

<input type=submit></form>

 

HTML-koden borde väl ändå vara:

 

<form action="action.php" method="POST">
<select name=fruit>
<option value="apple">Äpple<option value="apelsin">Apelsin<option value="banan">Banan<option>Päron</select>
<input type=submit></form>

 

och i php-koden borde du se efter om REGISTER_GLOBALS är på. Annars hamnar fruit i: $_POST["fruit"] och in te $fruit.

 

EDIT: Det sista stycket blev klantigt formulerat, testa såhär istället:

 

och i php-koden borde du se efter om inte fruit hamnar i: $_POST["fruit"] istället för $fruit. Detta beror på en inställning som heter REGISTER_GLOBALS som finns i php.ini, den bör vara avstängd.

 

 

 

Lycka till! :)

 

 

.dune.

----------------------------------------------

push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A

 

[inlägget ändrat 2003-03-13 21:13:53 av dune]

Länk till kommentar
Dela på andra webbplatser

Exakt. Value kan dock även anges med svenska tecken, tex value="äpple"

 

Vad gäller register globals så ska det vara off, och variablerna anropas med $_POST, precis som Dune skrev efter ändringen. :)

 

 

_________

TicoRoman - The One And Only

 

[inlägget ändrat 2003-03-13 21:16:01 av TicoRoman (Almir)]

Länk till kommentar
Dela på andra webbplatser

Exakt. Value kan dock även anges med svenska tecken, tex value="äpple"

 

 

Jag ogillar å, ä och ö. Onödiga bokstäver, jag mobbar dem dagligen ;)

 

 

 

.dune.

----------------------------------------------

push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A

 

Länk till kommentar
Dela på andra webbplatser

Tack för infon och hjälpen. Nu fungerar det och man får reda på vilken frukt man valde. Nu undrar jag ju bara hur man får in

$_POST["fruit"] i

<? echo "Du valde $fruit<P>"; ?>

 

Det går ju tydligen inte att skriva så här iaf:

 

<? echo "Du valde $_POST["fruit"]"; ?>

 

Blir lite många "". Skulle uppskatta hjälp om detta också.

Har prövat med ''.

 

(Och ja, jag är en nybörjare)

 

Länk till kommentar
Dela på andra webbplatser

Det går ju tydligen inte att skriva så här iaf:

 

<? echo "Du valde $_POST["fruit"]"; ?>

 

Försök med detta istället:

 

<? echo "Du valde " . $_POST["fruit"]; ?>

 

EDIT: Lite KOD-taggar så blir det lite snyggare...

 

.dune.

----------------------------------------------

push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A

 

[inlägget ändrat 2003-03-13 22:28:57 av dune]

Länk till kommentar
Dela på andra webbplatser

Eller min personliga favorit:

<?php
echo "Du valde {$_POST["fruit"]}";
?>

Ett tips är att alltid använda långa start-taggar (<?php). Tänk om du en dag byter server för din applikation, och den nya servern kör olika serverskriptspråk. Då vet inte PHP-var den ska läsa skript, med resultatet att du får gå tillbaka i koden och byta ut alla <? mot <?php (och <?= likaså).

 

Man vinner tid just när man skriver det, men lathet är programmerarens värsta fiende :)

Min i alla fall...

 

Länk till kommentar
Dela på andra webbplatser

Daniel Wahlgren

Ska man vara ännu petigare skall html-koden vara:

<form action="action.php" method="post">
<select name=fruit>
<option value="apple">Äpple</option>
<option value="apelsin">Apelsin</option>
<option value="banan">Banan</option>
<option>Päron</option>
</select>
<input type="submit" value="Välj frukt">
</form>

 

**********

Om spelvåld påverkar unga, hur skulle pacmangenerationen se ut idag?

 

Länk till kommentar
Dela på andra webbplatser

Heh....ok jag har ju lärt mig nya saker iaf. Det tar ju ett tag men allt eftersom lär man sig eller hur? Hursomhelst tack för era svar. Dröjer nog inte allt för länge innan jag är här och frågar i panik

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...