On Fri, May 21, 2010 at 3:24 PM, MuFei <[email protected]> wrote:
> Hi,
> I'm still new to PHP and everyday I learn something new.
> Today I was trying to make some script using the switch statement but
> I have some issue that I don't know how to get around it.
> It's a simple test script that contain only one file, it has some
> questions that I want only one question appear per time then go to the
> next question when clicking on the submit button, I used switch for
> that, but when I get the first page, I got a notice which says:
> Notice: Undefined index: question in path\test.php on line 56
> So I used if(isset($_GET[''])) but then the default value of the
> switch does not show up in the first page and I get the first page
> blank.
>
> 1- Is there anyway that I can use the default value of the switch
> without getting the note?
> Or
> 2- Is there anyway that I can use the default value of the switch with
> the if(isset()) and show the first page?
>
> Here is the content of the script that I hope you can help me with:
> (please note that it's not finished yet and it's so simple)
> (The if(isset()) is commented)
>
> ================================================
>
> <?php
> // List of test questions and their answers in variables
> $question1 = '1- What is PHP?<br />
> <input type="radio"
> name="q1a" value="a" /> A- Software <br />
> <input type="radio"
> name="q1a" value="b" /> B- Hypertext
> Preprocessor, Scripting Server side programming language <br />
> <input type="radio"
> name="q1a" value="c" /> C- Client side
> programming language <br /><br />
> <input type="submit"
> name="sumbit" value="Question 2" />';
> $answer1 = 'b';
>
> $question2 = '2- What is PHP used for?<br />
> <input type="radio"
> name="q2a" value="a" /> A- For web <br />
> <input type="radio"
> name="q2a" value="b" /> B- For Computers <br />
> <input type="radio"
> name="q2a" value="c" /> C- For Designing <br /><br />
> <input type="submit"
> name="sumbit" value="Question 3" />';
> $answer2 = 'a';
>
> $question3 = '3- What is good about PHP?<br />
> <input type="checkbox"
> name="q3a[a]" value="a" /> A- It\'s
> Designed and created for the web <br />
> <input type="checkbox"
> name="q3a[b]" value="b" /> B- It\'s Free <br />
> <input type="checkbox"
> name="q3a[c]" value="c" /> C- It supports
> different Databases <br />
> <input type="checkbox"
> name="q3a[d]" value="d" /> D- It\'s not
> an Oriented Programming language <br /><br />
> <input type="submit"
> name="sumbit" value="Question 4" />';
> $answer3_1 = 'a';
> $answer3_2 = 'b';
> $answer3_3 = 'c';
>
> $question4 = '4- What does PHP stands for?<br />
> <input type="radio"
> name="q4a" value="a" /> A- Perl Hypertext
> Programming <br />
> <input type="radio"
> name="q4a" value="b" /> B- Personal Home
> Page <br /><br />
> <input type="submit"
> name="sumbit" value="Question 5" />';
> $answer4 = 'b';
>
> $question5 = '5- Who created PHP?<br />
> <input type="radio"
> name="q5a" value="a" /> A- Andi Gutmans <br />
> <input type="radio"
> name="q5a" value="b" /> B- Zeev Suraski <br />
> <input type="radio"
> name="q5a" value="c" /> C- Rasmus Lerdorf <br /><br />
> <input type="submit"
> name="sumbit" value="Results" />';
> $answer5 = 'c';
> ?>
>
> <html>
> <head>
> <title>
> <?php
> if(isset($_GET['question'])) {
> echo "Question " .
> $_GET['question'];
> } else {
> echo 'Instroctions';
> }
> ?>
> </title>
> </head>
> <body>
> <?php
> //if(isset($_GET['question'])) {
> switch($_GET['question']) {
> case '1':
> echo '<form
> action="test.php?question=2" method="post">' .
> $question1 .'</form>';
> break;
>
> case '2':
> echo '<form
> action="test.php?question=3" method="post">' .
> $question2 .'</form>';
> break;
>
> case '3':
> echo '<form
> action="test.php?question=4" method="post">' .
> $question3 .'</form>';
> break;
>
> case '4':
> echo '<form
> action="test.php?question=5" method="post">' .
> $question4 .'</form>';
> break;
>
> case '5':
> echo '<form
> action="test.php?question=Results" method="post">' .
> $question5 .'</form>';
> break;
>
> case 'Results':
> echo 'You results are: <br
> /><br /><a href="test.php">Go to the
> home page and do the test again!</a>';
> break;
>
> default:
> echo 'Welcome to PHP simple
> test, Please click on Start button
> to begin you test. <br />
> <a
> href="test.php?question=1">Click Here to Begin!</a>';
> break;
> }
> //}
> ?>
> </body>
> </html>
>
> ================================================
>
>
> Thanks for your help guys! ^^
>
> MuFei
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
You could do any one of the following:
// set the GET
if(!isset($_GET['question'])) { $_GET['question'] = 'default';}
// OR, take the default out of the switch and put it in an else statement
if(isset($_GET['question'])) {
switch($_GET['question']) {
case '1':
echo '<form
action="test.php?question=2" method="post">' .
$question1 .'</form>';
break;
case '2':
echo '<form
action="test.php?question=3" method="post">' .
$question2 .'</form>';
break;
case '3':
echo '<form
action="test.php?question=4" method="post">' .
$question3 .'</form>';
break;
case '4':
echo '<form
action="test.php?question=5" method="post">' .
$question4 .'</form>';
break;
case '5':
echo '<form
action="test.php?question=Results" method="post">' .
$question5 .'</form>';
break;
case 'Results':
echo 'You results are: <br
/><br /><a href="test.php">Go to the
home page and do the test again!</a>';
break;
default:
echo 'We received an invalid
option';
break;
}
} else {
default:
echo 'Welcome to PHP simple
test, Please click on Start button
to begin you test. <br />
<a
href="test.php?question=1">Click Here to Begin!</a>';
}
OR, disable E_NOTICE level warnings (the corresponding array value for an
undefined index will be null):
http://php.net/manual/en/errorfunc.configuration.php
Adam
--
Nephtali: PHP web framework that functions beautifully
http://nephtaliproject.com