Gå til innhold

Problem med Quizen min![løst]


Anbefalte innlegg

Hei. Har et lite problem med quizen min jeg har laget ved hjelp av php. Problemet er at det alltid står at man har fått null poeng.

Er kanske nybegynner, men skjønner en del siden jeg kan litt javascript.

Her er deler av koden til quizen. Har ikke tatt med <br> og sånt

<form action="innhold/iq-resultat.php" method="get" name="iq-test">
smp. 1
<input type="radio" name="q1" value="1">Ja
<input type="radio" name="q1" value="2">Nei

spm 2.
<input type="radio" name="q2" value="1">1
<input type="radio" name="q2" value="2">45
<input type="radio" name="q2" value="3">67

<!-- osv. -->

 

Koden for motager siden er (forkortet den også):

<?
if (document.iq-test.q1==1)  //vis svar på q1 riktig (value 1) legg til en på $tell
  {  $tell=$tell++;  }
if (document.iq-test.q2==1)  //vis svar på q2 (spm 2) riktig (value 1) legg til en på $tell
  {  $tell=$tell++;  }

switch ($tell) {      //vis antall riktige 0, teksten her synes
   case 0: 
       print "Du fikk ingen riktige</span><br />Det var syn"; break;
   case 1:            //vis antall riktige 1, synes denne teksten 
       print "Du fikk en riktig</span><br />Det litt syn"; break;
//osv.
   default: 
        print "Det har skjedd en feil";
}
?>

 

Takk for all hjelp

Endret av 100smiles
Lenke til kommentar
Videoannonse
Annonse

Mulig jeg tar helt feil her, men prøver du å sjekke på en variabel fra javascript i php? Jeg vet ikke hvordan du kan "kryss-sjekke" variabler fra javascript og php, men jeg kan hvertfall fortelle deg hvordan jeg hadde gjort det:

 

<?php
//sjekke svarene sendt fra skjema "the php-way";D
$poengsum = 0;

if($_POST['q1'] == 1){
 $poengsum++; //Dette er nok for å øke summen med 1.
}
if($_POST['q2'] == 1){
 $poengsum++;
}

//Bare limer inn ditt her....
switch ($poengsum) {      //vis antall riktige 0, teksten her synes
  case 0: 
      print "Du fikk ingen riktige</span><br />Det var syn"; break;
  case 1:            //vis antall riktige 1, synes denne teksten 
      print "Du fikk en riktig</span><br />Det litt syn"; break;
//osv.
  default: 
       print "Det har skjedd en feil";
}
?>

*edit: glemte å lukke code-tagen

Endret av phanti
Lenke til kommentar

Hmm. Funka faktisk ikke det helle, selv om det virka som om den koden var feilfri. Er det noen som kan se om jeg har gjort noe feil her. HTML koden på den første siden har jeg ikke forandret på (se koden på første innlegg)

 

<span class="h1">
<?
$poengsum = 0;

if ($_POST['q1'] == 1){     //svar alternativ 1 er riktig
$poengsum++;
}
if ($_POST['q2'] == 1){
$poengsum++;
}
if ($_POST['q3'] == 4){      //svar alternativ 4 er riktig
$poengsum++;
}
if ($_POST['q4'] == 3){
$poengsum++;
}
if ($_POST['q5'] == 2){
$poengsum++;
}
if ($_POST['q6'] == 6){
$poengsum++;
}
if ($_POST['q7'] == 2){
$poengsum++;
}
if ($_POST['q8'] == 5){
$poengsum++;
}
if ($_POST['q9'] == 1){
$poengsum++;
}
if ($_POST['q10'] == 5){
$poengsum++;
}

switch ($poengsum) { 
   case 0: 
       print "Hææ..? Ingen kommentar</span><br />0 Riktige<br />Dette var synd..."; break;
   case 1: 
       print "Under gjennomsnittet</span><br />1 Riktige<br />Tenk deg om før du svarer...

Endret av 100smiles
Lenke til kommentar

hva får du opp da?

får du opp feilmelding eller ingenting?

 

Edit: Du kunne jo ta å lage ett array med all infoen til poengsummen i..

 

f.eks:

 

$kommentarertilsum = array(
0 => "Dette var ikke bra du fikk 0 poeng jo!",
1 => "Hva er det med deg da? du klarer da bedre enn dette",
2 => "o.s.v....",
3 => "o.s.v....",
4 => "o.s.v....",
5 => "o.s.v....",
6 => "o.s.v....",
7 => "o.s.v....",
8 => "o.s.v....",
9 => "o.s.v....",
10 => "o.s.v...."
);

echo $kommentarertilsum[$poengsum];

 

muligens noen feil i koden med du skjønner vel pointet ;)

Endret av chs89
Lenke til kommentar
Skal det ikke være break;'s i switch'n?

det kommer jo helt ann på hva du skal bruke den til.

i dette tilfelle skal den gå igjennom alle mulighetene i switch og sjekke, men manbruker break når du vil at switch'en skal toppe når case er true ;)

 

EDIT: sorry missforso litt :blush:

men han bruker jo break der da...

Endret av chs89
Lenke til kommentar

Prøvde med å endre method til post og endre if greiene til:

if ($q1 == 2) {$poengsum++}

 

Men det funket ikke det heller. Jeg det står fortsatt bare:

0 poeng. det var synd (eller noe sånt, ihvertfall det som står på case 0)

 

Kan det hende at det er fordi jeg ikke har skrevet inn navnet på skjema if greiene skal hente inn data fra. Eller er det ikke det nødvendig.

Lenke til kommentar

prøv dette ;)

<form action="innhold/iq-resultat.php" method="POST" name="iq-test">
smp. 1
<input type="radio" name="q1" value="1">Ja
<input type="radio" name="q1" value="2">Nei

spm 2.
<input type="radio" name="q2" value="1">1
<input type="radio" name="q2" value="2">45
<input type="radio" name="q2" value="3">67

<!-- osv. -->

 

<?
$poengsum = 0;

if ($_POST['q1'] == 1){     //svar alternativ 1 er riktig
$poengsum++;
}
if ($_POST['q2'] == 1){
$poengsum++;
}
if ($_POST['q3'] == 4){      //svar alternativ 4 er riktig
$poengsum++;
}
if ($_POST['q4'] == 3){
$poengsum++;
}
if ($_POST['q5'] == 2){
$poengsum++;
}
if ($_POST['q6'] == 6){
$poengsum++;
}
if ($_POST['q7'] == 2){
$poengsum++;
}
if ($_POST['q8'] == 5){
$poengsum++;
}
if ($_POST['q9'] == 1){
$poengsum++;
}
if ($_POST['q10'] == 5){
$poengsum++;
}

$kommentarertilsum = array(
0 => "Dette var ikke bra du fikk 0 poeng jo!",
1 => "Hva er det med deg da? du klarer da bedre enn dette",
2 => "o.s.v....",
3 => "o.s.v....",
4 => "o.s.v....",
5 => "o.s.v....",
6 => "o.s.v....",
7 => "o.s.v....",
8 => "o.s.v....",
9 => "o.s.v....",
10 => "o.s.v...."
);

echo "antall poeng: " . $poengsum . "<br />";
echo $kommentarertilsum[$poengsum];
echo "<br /><br />";
echo "takk for at du deltok :)";
?>

 

EDIT: legg merke til at jeg har redigert den øverste også ;)

Endret av chs89
Lenke til kommentar

Her er IQ-Testen. Egentlig er dette en test jeg fant på en annen side for lenge siden. Synes den var utrolig bra og har endret litt på svar alternativene og sånt.

Ta IQ-Testen

 

Holder på å lage siden, så den er egentlig ikke ferdig. Det hvite går over det orange og sånt. Alle linkene fungerer heller ikke. Men holder på å fikse det.

 

EDIT: Vis du greier alle uten å ha tatt testen før eller sett på svarene blir jeg utrolig imponert :p

Endret av 100smiles
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...