Bestimmte Seite je nach Anzahl der ausgewählten Radio-Buttons anzeigen?!

altox-de

Erfahrenes Mitglied
Hallo zusammen.
Ich habe ein kleines Problem:

Auf folgender Seite kann man einige Radio-Buttons auswählen
(besser gesagt handelt es sich dabei um eine "Überprüfungs-Seite".
Die Ergebnisse sind dorthin schon mit sessions übertragen worden):
http://www.sws-media.de/kunden/clever-cash/schritt2/ueberpruefen.php

Jedenfalls soll es nun so sein:
Jede Frage hat die gleiche Wertigkeit, also z.B:

Frage1:
Die Radio-Buttons heißen "radio01",
die Antworten haben - genau in der abgebildeten Reihenfolge -
dei Werte 1, 2 und 3.

Frage2:
Radio-Buttons heißen "radio02" ... ansonsten alles gleich etc.


Wenn man unten auf "Absenden" klickt,
soll man zu einer Ergebnisseite weitergeleitet werden,
die jedoch von der Auswahl der Radio-Buttons abhängig ist.

D.h. Hat man 11 bis 8 mal den Wert "1" bei den Radio-Buttons ausgewählt,
kommt man zu Seite "ergebnis1.php", hat man 7 bis 4 mal den Wert "1" bei den Radio-Buttons ausgewählt, kommt man zu Seite "ergebnis2.php" und hat man 3 bis kein mal den Wert "1" bei den Radio-Buttons ausgewählt, kommt man zu Seite "ergebnis3.php".

Die Werte "2" und "3" sind zu vernachlässigen!
Wichtig ist nur die Unterscheidung des ausgewählten Wertes "1" wie oben genannt.


Ist das mit PHP relativ einfach zu realisieren?
Eure Hilfe wäre mir sehr wichtig!
Danke, Claudi
 
Soweit ich weis, hast du die Antworten ja in einer Session gespeichert. Du könntest dann dieses machen
PHP:
$ans = 0;

foreach($_SESSION as $key=>$value)
{
   if($value=='1')
   {
        $ans++;
   }
}

Wenn noch andere Dinge in der Session stehen, musst du eben noch prüfen, ob der $key mit "radio" beginnt.

Eine leichtere Möglichkeit wäre bei jedem speichern der Antworten die Anzahl zu erhöhen

PHP:
$_SESSION['radio01'] = $_POST['radio01'];
if($_POST['radio01'] == '1')
{
   $_SESSION['anzahlEinser']++;
}

$_SESSION['anzahlEinser'] muss davor natürlich einmal erstellt werden. (Startwert 0)
 
Zuletzt bearbeitet:
Also ich habe ja immer diese Funktion, die die Ergebnisse speichert.
z.B: werden in "02.php" die Ergebnisse von "01.php" gespeichert.

Folgender Code wird verwendet:
PHP:
<?php 
session_start(); 

//Variable setzen 
if(isset($_POST['radio10'])) 
  { 
    $_SESSION['radio10']= $_POST['radio10']; 
  } 
 
?>


Soll ich das auf jeder Seite jetzt ersetzen durch:
PHP:
<?php 
session_start(); 

//Variable setzen 
if(isset($_POST['radio10'])) 
  { 
    $_SESSION['radio10']= $_POST['radio10']; 
  } 
  if($_POST['radio01'] == '1') 

//Anzahl der Einser erhöhen
  { 
  $_SESSION['anzahlEinser']++; 
  }  
?>


Und wie muss dann der Code lauten,
der je nach "anzahlEinser" die Ergebnisseite anzeigt?

Danke
 
Bei $_POST['radio01'] musst du den Index natürlich je nach Frage anpassen. Du kannst nicht bei Frage 10 prüfen, ob Frage 1 den Wert 1 hat.

Auf der Ergebnisseite prüfst du dann einfach, wie oft die 1 vorkommt
PHP:
if($_SESSION['anzahlEinser'] >= 11 || $_SESSION['anzahlEinser'] <= 8 )
{
   #Diese Seite
}
elseif($_SESSION['anzahlEinser'] >= 7 || $_SESSION['anzahlEinser'] <= 4 )
{
   #Diese Seite
}
else
{
   #Diese Seite
}
 
Ich habe jetzt in die Seite "ergebnis.php"
(das ist die Seite, die nach der Überprüfungs-Seite aufgerufen wird)
folgenden Code eingebaut:

PHP:
<?php
if($_SESSION['anzahlEinser'] >= 11 || $_SESSION['anzahlEinser'] <= 8 ) 
{ 
   #../schritt3/01.php 
} 
elseif($_SESSION['anzahlEinser'] >= 7 || $_SESSION['anzahlEinser'] <= 4 ) 
{ 
   #../schritt3/02.php
} 
else 
{ 
   #../schritt3/03.php 
}  ?>

Aber es klappt nicht...
Was mache ich falsch?!
 
Kleine Frage: Anfänger in PHP? Wenn ja, solltest du dich mal mit den (erweiterten) Grundlagen vertraut machen.

Du kannst die Seite entweder includen
PHP:
include("../schritt3/01.php ");
Oder auf diese weiterleiten
PHP:
header("Location: ../schritt3/01.php ");
Letzteres geht nur, wenn davor keinerlei Ausgabe erfolgt ist.

Du hast die Seiten jetzt nur als Kommentar hingeschrieben ;)
 
Hallo.
Ich habe jetzt in die Ergebnisseite folgenden Code eingebunden:

PHP:
<?php
if($_SESSION['anzahlEinser'] >= 11 || $_SESSION['anzahlEinser'] <= 8 ) 
{ 
   include("../schritt3/01.php");  
} 
elseif($_SESSION['anzahlEinser'] >= 7 || $_SESSION['anzahlEinser'] <= 4 ) 
{ 
   include("../schritt3/02.php");  
} 
else 
{ 
   include("../schritt3/03.php");  
}  ?>

Die jeweiligen Ergebnisse werden dann includet.
Jedoch erscheint immer nur Ergebnis 1!?

Was mache ich falsch?
 
Zurück