Hoger Lager

Overzicht Reageren

Direct weten hoe jij ervoor staat in de arbeidsmarkt?

Pagina: « vorige 1 2

Louis Deconinck

Louis Deconinck

29/07/2012 09:37:19
Quote Anchor link
Bedankt Eddy, dat is inderdaad wat ik wou :-) Echter er is nog een klein probleempje, bij het begin van het spel, dus ook als je op 'opnieuw' drukt, staat er standaard al ': Te laag' hoe kan ik dit wegkrijgen? Verder had ik ook graag gehad, dat wanneer het aantal getallen de onderkant van je scherm hebben bereikt, ze in een nieuwe kolom bovenaan starten, is dat ook mogelijk?

Code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php

session_start();

if (!isset($_SESSION['aantal'])) {
$_SESSION['aantal'] = -1;
}

if (!isset($_SESSION['getal'])) {
$_SESSION['getal'] = mt_rand(0,1000);
}

if (isset($_POST['opnieuw'])) {
$_SESSION['getal'] = mt_rand(0,1000);
$_SESSION['aantal'] = -1;
unset($_SESSION['keuzes']);
}

if (isset($_POST['keuze'])) {
    if ($_SESSION['getal'] == $_POST['keuze']) {
    echo '<div id="juist"><center><p>Juist, je hebt het getal in '.$_SESSION['aantal'].' beurten geraden.<br>Het getal was '.$_SESSION['getal'].'</p></center></div>';
    $_SESSION['aantal'] = 0;
    $_SESSION['getal'] = mt_rand(0,1000);
    $hola = 'Goed';
    unset($_SESSION['keuzes']);
    }

        elseif ($_POST['keuze'] > $_SESSION['getal']) {
        $_SESSION['aantal']++;
        $hola = 'Te hoog';    
        }

            elseif ($_POST['keuze'] < $_SESSION['getal']) {
                $_SESSION['aantal']++;
                $hola = 'Te laag';
            }

$_SESSION['keuzes'][] = $_POST['keuze'] .': '. $hola;
}

?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>Raad het getal</title>
        <style type="text/css">        
        
        #juist {
            border-style: ridge;
            border-color:#98bf21;
        }
    </style>
    </head>
    <body>
        <center>
            <?php echo '<p>Aantal beurten: '.$_SESSION['aantal'].'<br>'.$hola.'</p>'; ?>
            <form action="raad-het-getal.php" method="post">
                <p>Raad het getal 1 - 1000</p>
                <input type="text" name="keuze">
                <input type="submit" value="Raad">
                <input type="submit" value="Opnieuw" name="opnieuw">
            </form>
            <?php echo implode ("<br>", $_SESSION['keuzes']); ?>
        </center>
    </body>
</html>
 
PHP hulp

PHP hulp

20/05/2013 00:54:09
 
Bart V B

Bart V B

29/07/2012 09:45:43
Quote Anchor link
Je vergeet een if statement om te controleren of er wat gepost word.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
session_start();
if($_SERVER['REQUEST_METHOD'] == 'POST')
{


if (!isset($_SESSION['aantal'])) {
$_SESSION['aantal'] = -1;
}

if (!isset($_SESSION['getal'])) {
$_SESSION['getal'] = mt_rand(0,1000);
}

if (isset($_POST['opnieuw'])) {
$_SESSION['getal'] = mt_rand(0,1000);
$_SESSION['aantal'] = -1;
unset($_SESSION['keuzes']);
}

if (isset($_POST['keuze'])) {
    if ($_SESSION['getal'] == $_POST['keuze']) {
    echo '<div id="juist"><center><p>Juist, je hebt het getal in '.$_SESSION['aantal'].' beurten geraden.<br>Het getal was '.$_SESSION['getal'].'</p></center></div>';
    $_SESSION['aantal'] = 0;
    $_SESSION['getal'] = mt_rand(0,1000);
    $hola = 'Goed';
    unset($_SESSION['keuzes']);
    }

        elseif ($_POST['keuze'] > $_SESSION['getal']) {
        $_SESSION['aantal']++;
        $hola = 'Te hoog';    
        }

            elseif ($_POST['keuze'] < $_SESSION['getal']) {
                $_SESSION['aantal']++;
                $hola = 'Te laag';
            }

$_SESSION['keuzes'][] = $_POST['keuze'] .': '. $hola;
}

}

?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>Raad het getal</title>
        <style type="text/css">        
        
        #juist {
            border-style: ridge;
            border-color:#98bf21;
        }
    </style>
    </head>
    <body>
        <center>
            <?php echo '<p>Aantal beurten: '.$_SESSION['aantal'].'<br>'.$hola.'</p>'; ?>
            <form action="raad-het-getal.php" method="post">
                <p>Raad het getal 1 - 1000</p>
                <input type="text" name="keuze">
                <input type="submit" value="Raad">
                <input type="submit" value="Opnieuw" name="opnieuw">
            </form>
            <?php echo implode ("<br>", $_SESSION['keuzes']); ?>
        </center>
    </body>
</html>
 
Obelix en Idefix

Obelix en Idefix

29/07/2012 09:59:15
Quote Anchor link
Louis Deconinck op 29/07/2012 09:37:19:
Verder had ik ook graag gehad, dat wanneer het aantal getallen de onderkant van je scherm hebben bereikt, ze in een nieuwe kolom bovenaan starten, is dat ook mogelijk?

Dan zul je dus rekening moeten houden met de vele verschillen in schermformaten/resoluties.
 
Louis Deconinck

Louis Deconinck

29/07/2012 11:43:35
Quote Anchor link
Nu heb ik dit porbleem: Fatal error: [] operator not supported for strings in /home/schaak/public_html/php/raad-het-getal.php on line 29

Hoe kan ik er toch voor zorgen dat wanneer er Te hoog staat deze een groen kleur krijgt en bij Te laag een rode kleur?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
session_start();
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    if (!isset($_SESSION['aantal'])) {
    $_SESSION['aantal']=0;
    }

    if (!isset($_SESSION['getal'])) {
    $_SESSION['getal'] = mt_rand(0,1000);
    }

    if (isset($_POST['opnieuw'])) {
    $_SESSION['getal'] = mt_rand(0,1000);
    $_SESSION['aantal']=0;
    unset($_SESSION['keuzes']);
    unset ($_POST['keuze']);
    }

    if (isset($_POST['keuze'])) {
        if ($_SESSION['getal'] == $_POST['keuze']) {
        echo '<div id="juist"><center><p>Juist, je hebt het getal in '.$_SESSION['aantal'].' beurten geraden.<br>Het getal was '.$_SESSION['getal'].'</p></center></div>';
        $_SESSION['aantal']=0;
        $_SESSION['getal'] = mt_rand(0,1000);
        $hola = 'Goed';
        unset($_SESSION['keuzes']);
        }

            elseif ($_POST['keuze'] > $_SESSION['getal']) {
            $_SESSION['aantal']++;
            $hola = 'Te hoog';    
            $_SESSION['keuzes'][] = '<div id="tehoog">' .$_POST['keuze'] .': '. $hola .'</div>';
            }

                elseif ($_POST['keuze'] < $_SESSION['getal']) {
                    $_SESSION['aantal']++;
                    $hola = 'Te laag';
                    $_SESSION['keuzes'][] = '<div id="telaag">' .$_POST['keuze'] .': '. $hola .'</div>';
                    }
    }
}

if (!isset($_POST['keuze'])) {
$hola= '-';
}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>Raad het getal</title>
        <style type="text/css">        
        
        #juist {
            border-style: ridge;
            border-color: #98bf21;
        }
        #telaag {
            color: #DF0101;
        }
        #tehoog {
            color: #088A08;
        }
    </style>
    </head>
    <body>
        <center>
            <?php echo '<p>Aantal beurten: '.$_SESSION['aantal'].'<br>'.$hola.'</p>'; ?>
            <form action="raad-het-getal.php" method="post">
                <p>Raad het getal 1 - 1000</p>
                <input type="text" name="keuze">
                <input type="submit" value="Raad">
                <input type="submit" value="Opnieuw" name="opnieuw">
            </form>
            <?php echo implode ("<br>", $_SESSION['keuzes']); ?>
        </center>
    </body>
</html>
 
Eddy E

Eddy E

29/07/2012 11:51:57
Quote Anchor link
Let even op dat je aan die <div> (je kan beter een <span> nemen trouwens) geen ID toekent, maar een CLASS. Omdat je makkelijk meerdere keren te hoog kan zitten.
Een ID mag maar 1x voorkomen. Een CLASS zo vaak als je wilt.

Zet ergens bovenaan je script dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if(!isset($_SESSION['keuzes'])
    {

    $_SESSION['keuzes'] = array();
    }

?>


Dit maakt alvast een array aan als er nog niets gekozen is.
Gewijzigd op 29/07/2012 11:56:18 door Eddy E
 
Obelix en Idefix

Obelix en Idefix

29/07/2012 12:14:45
Quote Anchor link
- SanThe - op 28/07/2012 15:50:25:
Een $_POST-var hoef je eigenlijk nooit te unsetten omdat deze alléén bestaat direct na het versturen van het formulier.


Obelix en Idefix op 27/07/2012 21:43:31:
Spring je script in bij if-constructies (en bij while, etc), zodat je weet welke { bij } hoort.


Laat dit gewoon boven aan je script staan:
- SanThe - op 27/07/2012 22:17:05:
Zet voor de gein dit eens helemaal bovenin je script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

// rest
?>


Je hebt nu op regel 19 een echo staan. Die hoort daar niet --> het hele html gedeelte staat vanaf regel 41 (inclusief je css-opmaak)
 
Louis Deconinck

Louis Deconinck

29/07/2012 12:54:16
Quote Anchor link
Ziezo alles werkt weer perfect, alleen heeft hij nog steeds bij het begin ': Te laag' aan, dit gebeurt ook wanneer je op de knop opnieuw drukt, echter als je het spel hebt uitgespeeld, waarna je dus automatisch opnieuw begint, staat die ': Te laag' er niet meer. Hoe kan ik deze wegkrijgen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
session_start();
$juist = ' ';
if(!isset($_SESSION['keuzes'])) {
    $_SESSION['keuzes'] = array();
}

if($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (!isset($_SESSION['aantal'])) {
    $_SESSION['aantal']= -1;
    }

    if (!isset($_SESSION['getal'])) {
    $_SESSION['getal'] = mt_rand(0,1000);
    }

    if (isset($_POST['opnieuw'])) {
    $_SESSION['getal'] = mt_rand(0,1000);
    $_SESSION['aantal']= -1;
    $_SESSION['keuzes'] = array();
    }

    if (isset($_POST['keuze'])) {
        if ($_SESSION['getal'] == $_POST['keuze']) {
        $juist = '<span class="tehoog"><p>Juist, je hebt het getal in '.$_SESSION['aantal'].' beurten geraden.<br>Het getal was '.$_SESSION['getal'].'</p></span>';
        $_SESSION['aantal']=0;
        $_SESSION['getal'] = mt_rand(0,1000);;
        $_SESSION['keuzes'] = array();
        $hola = ' ';
        }

            elseif ($_POST['keuze'] > $_SESSION['getal']) {
            $_SESSION['aantal']++;
            $hola = 'Te hoog';    
            $_SESSION['keuzes'][] = '<span class="tehoog">' .$_POST['keuze'] .': '. $hola .'</span>';
            }

                elseif ($_POST['keuze'] < $_SESSION['getal']) {
                    $_SESSION['aantal']++;
                    $hola = 'Te laag';
                    $_SESSION['keuzes'][] = '<span class="telaag">' .$_POST['keuze'] .': '. $hola .'</span>';
                    }
    }
}

if (!isset($_POST['keuze'])) {
$hola= '-';
}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>Raad het getal</title>
        <style type="text/css">
        body {
        text-align: center;
        }
        #content {
        border: 1px solid black;    
        width: 500px;
        }
        .telaag {
            color: #DF0101;
        }
        .tehoog {
            color: #088A08;
        }
        </style>
    </head>
    <body>
        <div id="content">
            <?php echo $juist;
            echo '<p>Aantal beurten: '.$_SESSION['aantal'].'<br>'.$hola.'</p>'; ?>

            <form action="raad-het-getal.php" method="post">
                <p>Raad het getal 1 - 1000</p>
                <input type="text" name="keuze">
                <input type="submit" value="Raad">
                <input type="submit" value="Opnieuw" name="opnieuw">
            </form>
            <?php echo implode ("<br>", $_SESSION['keuzes']); ?>
        </div>
    </body>
</html>
 
Obelix en Idefix

Obelix en Idefix

29/07/2012 13:33:47
Quote Anchor link
Waarom $_SESSION['aantal'] = -1; ?

Zodra ik dit script opstart krijg ik:
Notice: Undefined index: aantal in C:\xampp\htdocs\hogerlager2.php on line 68

Geef in je formulier een name mee aan de submit knop Raad.

Je telling klopt niet: als ik het getal raad is het aantal beurten 1 te laag --> ook de laatst ingevoerde waarde moet als beurt worden geteld lijkt me.

Zet een autofocus op het invoerveld.

Je hebt nu op meerdere plaatsen oa $_SESSION['getal'] = mt_rand(0,1000); staan. Lijkt inefficiënt.

Zou het mooier vinden als je het laatst ingevoerde getal bovenaan zet ipv onderaan. Zie sorteren array.

Vind je uitlijning van de if-statements nog steeds niet ideaal (regel 9 t/m 40) om te lezen welke { bij } hoort. Daarnaast: waarom inspringen bij de elseif? Die hoort (juist) bij een if.
Gewijzigd op 29/07/2012 13:55:12 door Obelix en Idefix
 
Louis Deconinck

Louis Deconinck

30/07/2012 10:12:54
Quote Anchor link
Hallo iedereen, ondertussen werkt het script al goed, met 2 uitzonderingen. In IE9 wordt het veld gecentreerd maar in Chrome niet, hoe los ik dit probleem op. Verder werkt autofocus niet in IE9, bestaat er een mogelijkheid om dit op te lossen, of is dat gewoon onmogelijk. Ook heb ik niet kunnen vinden hoe ik omgekeerd kan gaan sorteren in een array, zouden jullie mij de oplossing kunnen vertellen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
session_start();
$juist = "<br><br><br>";
if(!isset($_SESSION['keuzes'])) {
$_SESSION['keuzes'] = array();
}

if (!isset($_SESSION['aantal'])) {
$_SESSION['aantal']= 0;
}

if (!isset($_SESSION['getal'])) {
$_SESSION['getal'] = mt_rand(0,1000);
}

if($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (isset($_POST['opnieuw'])) {
    $_SESSION['getal'] = mt_rand(0,1000);
    $_SESSION['aantal']= 0;
    $_SESSION['keuzes'] = array();
    $hola = '-';
    goto a;
    }

    if (isset($_POST['keuze'])) {
        if ($_SESSION['getal'] == $_POST['keuze']) {
        $juist = '<span class="tehoog"><p>Juist, je hebt het getal in '.$_SESSION['aantal'].' beurten geraden.<br>Het getal was '.$_SESSION['getal'].'</p></span>';
        $_SESSION['aantal']=0;
        $_SESSION['getal'] = mt_rand(0,1000);;
        $_SESSION['keuzes'] = array();
        $hola = '-';
        }

            elseif ($_POST['keuze'] > $_SESSION['getal']) {
            $_SESSION['aantal']++;
            $hola = '<span class="tehoog">Te hoog</span>';    
            $_SESSION['keuzes'][] = '<span class="tehoog">' .$_POST['keuze'] .': '. $hola .'</span>';
            }

                elseif ($_POST['keuze'] < $_SESSION['getal']) {
                    $_SESSION['aantal']++;
                    $hola = '<span class="telaag">Te laag</span>';
                    $_SESSION['keuzes'][] = '<span class="telaag">' .$_POST['keuze'] .': '. $hola .'</span>';
                    }
    }
}

a:
if (!isset($_POST['keuze'])) {
$hola= '-';
}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>Raad het getal</title>
        <style type="text/css">
        body {
        text-align: center;
        }
        #content {
        border: 1px solid black;    
        width: 500px;
        }
        .telaag {
            color: #DF0101;
        }
        .tehoog {
            color: #088A08;
        }
        </style>
    </head>
    <body>
        <div id="content">
            <?php echo $juist;
            echo '<p>Aantal beurten: '.$_SESSION['aantal'].'<br>'.$hola.'</p>'; ?>

            <form action="raad-het-getal.php" method="post">
                <p>Raad het getal 1 - 1000</p>
                <input type="text" name="keuze" autofocus="autofocus" />
                <input type="submit" value="Raad" name="raad" />
                <input type="submit" value="Opnieuw" name="opnieuw" />
            </form>
            <?php echo implode ("<br>", $_SESSION['keuzes']); ?>
        </div>
    </body>
</html>


Alvast bedankt
Louis
 
Reshad F
Redacteur

Reshad F

30/07/2012 10:39:45
Quote Anchor link
zo is het goed.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
session_start();
$juist = "<br><br><br>";
if(!isset($_SESSION['keuzes'])) {
$_SESSION['keuzes'] = array();
}

if (!isset($_SESSION['aantal'])) {
$_SESSION['aantal']= 0;
}

if (!isset($_SESSION['getal'])) {
$_SESSION['getal'] = mt_rand(0,1000);
}

if($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (isset($_POST['opnieuw'])) {
    $_SESSION['getal'] = mt_rand(0,1000);
    $_SESSION['aantal']= 0;
    $_SESSION['keuzes'] = array();
    $hola = '-';
    goto a;
    }

    if (isset($_POST['keuze'])) {
        if ($_SESSION['getal'] == $_POST['keuze']) {
        $juist = '<span class="tehoog"><p>Juist, je hebt het getal in '.$_SESSION['aantal'].' beurten geraden.<br>Het getal was '.$_SESSION['getal'].'</p></span>';
        $_SESSION['aantal']=0;
        $_SESSION['getal'] = mt_rand(0,1000);;
        $_SESSION['keuzes'] = array();
        $hola = '-';
        }

            elseif ($_POST['keuze'] > $_SESSION['getal']) {
            $_SESSION['aantal']++;
            $hola = '<span class="tehoog">Te hoog</span>';    
            $_SESSION['keuzes'][] = '<span class="tehoog">' .$_POST['keuze'] .': '. $hola .'</span>';
            }

                elseif ($_POST['keuze'] < $_SESSION['getal']) {
                    $_SESSION['aantal']++;
                    $hola = '<span class="telaag">Te laag</span>';
                    $_SESSION['keuzes'][] = '<span class="telaag">' .$_POST['keuze'] .': '. $hola .'</span>';
                    }
    }
}

a:
if (!isset($_POST['keuze'])) {
$hola= '-';
}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>Raad het getal</title>
        <style type="text/css">
        body {
        text-align: center;
        }
        #content {
            margin: 0 auto;
        border: 1px solid black;    
        width: 500px;
        }
        .telaag {
            color: #DF0101;
        }
        .tehoog {
            color: #088A08;
        }
        </style>
    </head>
    <body>
        <div id="content">
            <?php echo $juist;
            echo '<p>Aantal beurten: '.$_SESSION['aantal'].'<br>'.$hola.'</p>'; ?>

            <form action="" method="post">
                <p>Raad het getal 1 - 1000</p>
                <input type="text" name="keuze" autofocus="autofocus" />
                <input type="submit" value="Raad" name="raad" />
                <input type="submit" value="Opnieuw" name="opnieuw" />
            </form>
            <?php echo implode ("<br>", $_SESSION['keuzes']); ?>
        </div>
    </body>
</html>


Toevoeging op 30/07/2012 10:41:29:

Edit:

ik heb voor je de action in je form eruit gehaald zo weet je form dat je op dezelfde pagina moet blijven en hoef je niet steeds je url te veranderen als je bijvoorbeeld je bestandje van naam veranderd.

verder voor het uitlijnen heb ik .content op margine:0 auto; gezet
Gewijzigd op 30/07/2012 10:40:10 door Reshad F
 
Louis Deconinck

Louis Deconinck

30/07/2012 10:54:23
Quote Anchor link
Ok, heel erg bednkt Reshad F, Dus dan blijft er alleen nog over, hoe kan ik er voor zorgen dat de array omgekeerd wordt ingevuld en is het ook mogelijkl om autofocus toe te passen in Internet Explorer, op w3 schools stond van niet, maar misschien is er wel een omweg?

Groetjes
Louis
 
Eddy E

Eddy E

30/07/2012 10:56:54
Quote Anchor link
array omdraaien: array_reverse()
Autofocus moet je zelf even googlen: autofocus internet explorer.

Regel 72 van hierboven:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<p>Aantal beurten: <?php echo $_SESSION['aantal']; ?><br><?php echo $hola; ?></p>


Dus houd je PHP en HTML echt gescheiden.
 
Reshad F
Redacteur

Reshad F

30/07/2012 11:05:09
Quote Anchor link
voor de autofocus kan je het met JS oplossen

http://www.html5tutorial.info/html5-autofocus.php
 
Obelix en Idefix

Obelix en Idefix

30/07/2012 12:34:09
Quote Anchor link
Sorteren array: kijk eens op http://php.net/manual/en/array.sorting.php
 
Louis Deconinck

Louis Deconinck

30/07/2012 16:23:46
Quote Anchor link
Ok, ondertussen werkt alles, dus nu wou ik graag nog een nieuwe functie toevoegen, namelijk dat de gebruiker bij het begin van het spel zelf het maximumgetal mag intypen, zodat hij zelf de moeilijkheidsgraad kan aanpassen van het spel. Tot op zeker hoogte lukt dit wel, maar alleen neemt hij precies telkens het maximum getal van de vorige keer. Zien jullie toevallig wat ik fout heb gedaan?

Code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
session_start();
$juist = "<br><br><br>";
if (!isset($_SESSION['maxgetal'])) {
goto a;
}

if(!isset($_SESSION['keuzes'])) {
$_SESSION['keuzes'] = array();
}

if (!isset($_SESSION['aantal'])) {
$_SESSION['aantal']= 0;
}

if (!isset($_SESSION['getal'])) {
$_SESSION['getal'] = mt_rand(0,$_SESSION['maxgetal']);
}

if($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (isset($_POST['opnieuw'])) {
    $_SESSION['getal'] = mt_rand(0,$_SESSION['maxgetal']);
    $_SESSION['aantal']= 0;
    $_SESSION['keuzes'] = array();
    unset($_SESSION['maxgetal']);
    $hola = '-';
    goto a;
    }

    if (isset($_POST['keuze'])) {
        if ($_SESSION['getal'] == $_POST['keuze']) {
        $juist = '<span class="tehoog"><p>Juist, je hebt het getal in '.$_SESSION['aantal'].' beurten geraden.<br>Het getal was '.$_SESSION['getal'].'</p></span>';
        $_SESSION['aantal']=0;
        $_SESSION['getal'] = mt_rand(0,$_SESSION['maxgetal']);;
        $_SESSION['keuzes'] = array();
        $hola = '-';
        unset($_SESSION['maxgetal']);
        }

            elseif ($_POST['keuze'] > $_SESSION['getal']) {
            $_SESSION['aantal']++;
            $hola = '<span class="tehoog">Te hoog</span>';    
            $_SESSION['keuzes'][] = '<span class="tehoog">' .$_POST['keuze'] .': '. $hola .'</span>';
            }

                elseif ($_POST['keuze'] < $_SESSION['getal']) {
                    $_SESSION['aantal']++;
                    $hola = '<span class="telaag">Te laag</span>';
                    $_SESSION['keuzes'][] = '<span class="telaag">' .$_POST['keuze'] .': '. $hola .'</span>';
                    }
    }
}

a:
if (!isset($_POST['keuze'])) {
$hola= '-';
}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>Raad het getal</title>
        <style type="text/css">
        body {
            text-align: center;
        }
        p {
            margin-top: 10px;
        }
        #content {
            margin: 0 auto;
            border: 1px solid black;    
            width: 400px;
        }
        #geschiedenis {
            margin-top: 10px;
            margin-bottom: 10px;
        }
        .telaag {
            color: #DF0101;
        }
        .tehoog {
            color: #088A08;
        }
        </style>
        <script>
         function testAttribute(element, attribute) {
            var test = document.createElement(element);
                if (attribute in test) {
                 return true;
               }
             else
            return false;
        }
        window.onload = function() {
            if (!testAttribute('input', 'autofocus'))
            document.getElementById('autofocus').focus();
        }
         </script>
    </head>
    <body>
        <div id="content">
            <?php
            if (isset($_POST['maxgetal'])) {
            $_SESSION['maxgetal'] = $_POST['maxgetal'];
            }

            if (!isset($_SESSION['maxgetal'])) { ?>

                <p>Maximum getal:</p>
                <form action="" method="post">
                    <label for="autofocus"><input id="autofocus" type="text" name="maxgetal" autofocus="autofocus" />
                    <input type="submit" value="Bevestig" name="bevestig" />
                </form>
            <?php
            else {
            echo $juist; ?>

            <p>Aantal beurten: <?php echo $_SESSION['aantal']; ?>
            <br><br>
            <?php
            echo $hola;
            ?>

            0 - <?php echo $_SESSION['maxgetal']; ?></p>
            <form action="" method="post">
                <label for="autofocus"><input id="autofocus" type="text" name="keuze" autofocus="autofocus" />
                <input type="submit" value="Raad" name="raad" />
                <input type="submit" value="Opnieuw" name="opnieuw" />
            </form>
            <?php }  ?>
            <div id="geschiedenis">
                <?php
                $geschiedenis
= array_reverse($_SESSION['keuzes']);
                echo implode ("<br>", $geschiedenis);
                ?>

            </div>
        </div>
    </body>
</html>
 
Reshad F
Redacteur

Reshad F

30/07/2012 16:46:37
Quote Anchor link
als een gebruiker een getal ingevult heeft dan zet je geen nieuwe sessie hiervoor.. kijk maar vanaf regel 97 ik zou de logica veranderen een beetje.. ik zou eerst een


form weergeven. getal laten invullen en sessie zetten - > check op sessie - > spelletje spelen

jij doet nu check sessie - > check sessie - > zoja geef form ... ( geen nieuwe sessie ) en anders show spelletje ...
 
Obelix en Idefix

Obelix en Idefix

30/07/2012 17:32:02
Quote Anchor link
Als ik het script probeer, krijg ik een foutmelding:
Parse error: syntax error, unexpected T_ELSE in C:\xampp\htdocs\hoger_lager3.php on line 108

Als ik die oplos, krijg ik als foutmeldingen:
Notice: Undefined index: keuzes in C:\xampp\htdocs\hoger_lager3.php on line 127

Warning: array_reverse() expects parameter 1 to be array, null given in C:\xampp\htdocs\hoger_lager3.php on line 127

Warning: implode() [function.implode]: Invalid arguments passed in C:\xampp\htdocs\hoger_lager3.php on line 128

Na het ingeven van een maximum volgt als melding:
Notice: Undefined index: aantal in C:\xampp\htdocs\hoger_lager3.php on line 112

Zodra ik het getal geraden heb, krijg ik daar geen melding (meer) van, maar komt het beginscherm om een maximumgetal weer te geven.

Gebruik van goto kende ik nog niet. Leuk gevonden, maar of het echt nodig is in jouw script.

Op regel 5 gebruik je " ipv ' Script zal er niet minder om werken, maar wees consequent.
Gewijzigd op 30/07/2012 17:36:09 door Obelix en Idefix
 

Pagina: « vorige 1 2



Overzicht Reageren