webForumDet fria alternativet

If.... else.... - får samma resultat

PHPur PHP

6 svar · 284 visningar · startad av Ann-Sofie

Ann-SofieMedlem sedan mars 2003136 inlägg
#1

Känner mig alldeles snurrig, gör en frågetävling eller testar ska jag väl säga. Gör den endast i PHP, vet inte om jag bör databaskoppla den sedan också. Nybörjare som ni kanske förstår :o)
Hursomhelst har jag labbat med nedan kod och jag får hela tiden samma svar. Antingen Rätt på alla alternativ eller Fel eller som i den aktuella koden nedan _både_ Rätt!Fel.

Jag använde radioknappar i html-formuläret och måste ha [fråga1] på alla för att inte kunna välja 2 samtidigt men vet inte hur jag ska göra i php-koden för att särskilja dom...
antar att detta är ett enkelt problem...!

<?
if (isset($_POST['fråga1']) =="5e")
print"Rätt!";
if (isset($_POST['fråga1'])=="7e")
print"Fel";
elseif (isset($_POST['fråga1'])=="3e")
print "Fel";
?>

/ann-sofie

spejsklarkMedlem sedan mars 200399 inlägg
#2

Jag tror inte du kan både kolla isset() och jämföra värdet på samma gång så som du gör i dina if satser. Sen saknar du {} parenteser efter if-satserna, vilket troligtvis gör att alla printkommandon exekveras.
Detta tror jag fungerar:

if (isset($_POST['fråga1'])) {
if ($_POST['fråga1'] == "5e")
{ print "Rätt"; }
if ($_POST['fråga1'] == "7e" OR $_POST['fråga1'] == "3e")
{print "Fel"; }
}

Sen brukar man lägga $_POST variabeln i en annan så det blir lite enklare:
$fraga1 = $_POST['fråga1'];
Och använd helst inte åäö i variabelnamn.

Hoppas det hjälper.

Ann-SofieMedlem sedan mars 2003136 inlägg
#3

neeeeeeejjjj...

tack för ditt svar och jag vet det där med å ä ö.. detta är mest ett test för att kolla om jag överhuvudtaget hängde med vilket jag inte verkar göra... :o(
Jag testade ditt förslag men nu får jag bara en blank sida vilket alternativ jag än väljer.

Fler förslag?

K@llenMedlem sedan mars 20032 667 inlägg
#4

<? 
if (isset($_POST['fråga1']) && $_POST['fråga1'] == "5e") {

   print"Rätt!"; 

}

elseif (isset($_POST['fråga1']) && $_POST['fråga1'] == "7e") {

   print"Fel"; 

}

elseif (isset($_POST['fråga1']) && $_POST['fråga1'] == "3e") {

   print "Fel"; 

}
?>

Eftersom du jämför samma variabel flera gånger kan du med fördel använda en switch-sats.

spejsklarkMedlem sedan mars 200399 inlägg
#5

Följande kod funkade för mig.

Spara i quiz_test.php

<html>
<head>
<title>Quiz Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" action="quiz_test.php" method="post">
<p>
<input type="radio" name="fraga1" value="3e">
3e
<br>
<input type="radio" name="fraga1" value="7e">
7e
<br>
<input type="radio" name="fraga1" value="5e">
5e
<br>
</p>
<input name="Submit" type="submit" value="Skicka">

<?php
if (isset($_POST['fraga1'])) {
if ($_POST['fraga1'] == "5e")
{ echo "Rätt"; }
if ($_POST['fraga1'] == "7e" OR $_POST['fraga1'] == "3e")
{ echo "Fel"; }
}
?>
</form>

</body>
</html>

PeWMedlem sedan juni 200010 432 inlägg
#6

Det skulle uppskattas om man använde kodtaggar när man postar kod... det blir bra mycket lättare för andra att läsa den, och sannolikheten till svar ökar :)

elvelindMedlem sedan juli 2002167 inlägg
#7
<?php
if (isset($_POST['fraga1'])) {
  switch ($_POST['fraga1']) {
    case 5e:
      echo "Rätt";
      break;
    default:
      echo "Fel";
}}
?>
134 ms totalt · 3 externa anrop · v20260731065814-full.363dfaf6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)