[OPGELOST] Gegevens weergeven na Error in input form! [OPGELOST]

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mark van den Brink

Mark van den Brink

16/08/2013 17:57:02
Quote Anchor link
Hallo PHPtisten,

Hier een vraag van mij aan jullie.
Ik ben met een script bezig klein bestellijstje en die vordert al aardig ik loop alleen tegen een klein probleem aan.

Als je bijvoorbeeld: Je gegevens invult en je bent je naam of e-mail vergeten dan word hij terug gestuurd met de melding dat je iets vergeten bent hierbij onthoud hij je overig ingevoerde gegevens waaronder adres enzo.

Dit werkt prima overigens alleen lukt mij dit niet met de bestelformulier die ik uitlees doormiddel van een array. Als je nu dus je gegevens invult en de hoeveelheid die je wilt bestellen maar je vergeet bijv: je naam dan onthoud hij alles behalve de aantallen voor de bestelling.

Hieronder de script die ik gebruik:

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
131
132
133
134
135
136
137
138
<?php

require 'connect.php';
session_start();
ob_start();

$_SESSION['show'] = "";

if(isset($_POST['Controleer'])){

// Producten in een Array zetten
$sProduct = "SELECT * FROM Bestellijst";
        
        $product = mysql_query($sProduct, $sqlLink);

$aGebak = array();

while ($r1 = mysql_fetch_array($product)){  
   $aGebak[] = $r1[ 'Product' ];
}



// Prijzen in een array zetten
$sPrijs = "SELECT Prijs FROM Bestellijst";
        
        $prijs = mysql_query($sPrijs, $sqlLink);

$aPrijs = array();

while ($r2 = mysql_fetch_array($prijs)){  
   $aPrijs[] = $r2[ 'Prijs' ];
}


$aTotaal = array();


$aantal = count($_POST['aantal']) ? $_POST['aantal'] : array();

// Alle input velden met "Aantal" Toewijzen ($a is inhoud van het veld) ($key is opvolgende nummer van 1 >)
foreach($_POST['aantal'] as $key => $a ) {
    if(!empty($a)) {
        
        $b = $a * $aPrijs[$key];
        
        //stop alle prijzen $b in een array $aTotaal
    array_push($aTotaal, $b);
  $_SESSION['show'] .= "<tr><td>".$a."</td><td>".$aGebak[$key]."</td><td>".number_format($b, 2, ',', '.')."</td></tr>";
  
  $$key = trim($a);

    }
}


if(!isset($_SESSION['show']) || $_SESSION['show'] == "" ){
    $userErrors[] = 'U heeft geen <u>Producten</u> in bestelling.';
    $error->Producten = 'Geen bestelling.';
}


// Optellen alle bedragen in $aTotaal - Array
function ArrayCount($array)
{

    $getal = 0;
    
    foreach($array as $key => $waarde)
    {

        $getal = $getal + $waarde;
    }

    
    return $getal;
}


$_SESSION['Totaal'] = number_format(ArrayCount($aTotaal), 2, ',', '.');





// Persoonlijke gegevens

$email = $_POST['email'];

        //E-mail Check
function checkmail($email)
{

    $email_host = explode("@", $email);
    $email_host = $email_host['1'];
    $email_resolved = gethostbyname($email_host);
    if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$email))
       $valid = 1;
    return $valid;
}




    if( !isset($_POST['naam']) || $_POST['naam'] == '' )
    {

        $userErrors[] = 'U bent uw <u>Naam</u> vergeten.';
        $error->InputN = ' style="border-color:#F00"';
    }

    
    if( !isset($_POST['adres']) || $_POST['adres'] == '' )
    {

        $userErrors[] = 'U heeft geen <u>Adres</u> ingevuld';
        $error->InputA = ' style="border-color:#F00"';
    }

    
    if( !isset($_POST['telefoon']) || $_POST['telefoon'] == '' )
    {

        $userErrors[] = 'U heeft geen <u>Telefoonnummer</u> ingevuld';
        $error->InputT = ' style="border-color:#F00"';
    }

        
    if( !isset($_POST['email']) || $_POST['email'] == '' )
    {

        $userErrors[] = 'U heeft geen <u>E-mailadres</u> ingevuld';
        $error->InputM = ' style="border-color:#F00"';
    }

    elseif(checkmail($_POST['email']) == 0)
        {

            $userErrors[] = "Uw <u>E-mail</u> is niet correct ingevult.";
            $error->InputM = ' style="border-color:#F00"';
            unset($_POST['email']);
        }

        



    
    if (empty($error))
    {


    header("Location: bestelcontrole.php");
    ob_end_flush();
    }
    
}


?>


Dit is het script die hem verwerkt en controleert hieronder volgt het formulier:

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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
<form name="bestellijst" method="post" action="<? htmlentities($_SERVER['PHP_SELF']); ?>">
      
      
 <?php    
 
 // Bestellijst Linker Kolom
      $sQuery = "SELECT * FROM Bestellijst WHERE ID < 26 ORDER BY ID ASC";

        $result = mysql_query($sQuery, $sqlLink);

        if( $sQuery === false )
        {

            // De query is niet gelukt
            SQLerror(mysql_error(), 'Uw opdracht kan niet worden uitgevoerd', __FILE__);
        }

        else
        {

            if( mysql_num_rows($result) > 0 )
            {

 echo '<table width="400" border="0" cellspacing="0" cellpadding="0" align="left">
  <tr>
    <td width="75"><b>Aantal</b></td>
    <td width="268"><b>Gebak</b></td>
    <td width="55"><b>&euro;</b></td>
  </tr>'
;
                while( $row = mysql_fetch_assoc($result) )
                {

                if($row['Actief'] == "2"){
                                echo '<tr>
    <td>
      <input name="aantal[]" type="hidden" id="aantal[]" size="5"/></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>'
;            
                            }
else{

  echo '<tr>
    <td>
      <input name="aantal[]" type="text" id="aantal[]" size="5"/></td>
    <td>'
.$row['Product'].'</td>
    <td>'
.$row['Prijs'].'</td>
  </tr>'
;
                }
            }

                echo '</table>';
            }

            else
            {
echo 'Geen producten toegevoegd!';
            }
        }

?>






 <?php    
 //Bestellijst Rechter Kolom
      $sQuery = "SELECT * FROM Bestellijst WHERE ID > 25 ORDER BY ID ASC";

        $result = mysql_query($sQuery, $sqlLink);

        if( $sQuery === false )
        {

            // De query is niet gelukt
            SQLerror(mysql_error(), 'Uw opdracht kan niet worden uitgevoerd', __FILE__);
        }

        else
        {

            if( mysql_num_rows($result) > 0 )
            {

                
 echo '<table width="400" border="0" cellspacing="0" cellpadding="0" align="right">
  <tr>
    <td width="75"><b>Aantal</b></td>
    <td width="268"><b>Gebak</b></td>
    <td width="55"><b>&euro;</b></td>
  </tr>'
;
                while( $row = mysql_fetch_assoc($result) )
                {

                            if($row['Actief'] == "2"){
                                echo '<tr>
    <td>
      <input name="aantal[]" type="hidden" id="aantal[]" size="5" /></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>'
;            
                            }
else{

    
    
  echo '<tr>
    <td>
      <input name="aantal[]" type="text" id="aantal[]" size="5"></td>
    <td>'
.$row['Product'].'</td>
    <td>'
.$row['Prijs'].'</td>
  </tr>'
;
                }
            }

                echo '</table>';
                
            }

            else
            {
echo 'Geen producten toegevoegd!';
            }
        }

?>

<br clear="both" />
        <b><br />
  <br />
  Bestelling voor: </b>
  <?php if( count($userErrors) > 0 ) :
          // Er zijn errors gevonden ?>

        <div class="vergeten">
            <ul>
            <?php foreach( $userErrors as $err ) : ?>
                <li><?php echo $err; ?></li>
            <?php endforeach; ?>
            </ul>
        </div>
    <?php endif; ?>
        <table width="781" border="0" cellspacing="0" cellpadding="0" align="center">
          <tr>
            <td width="165">Naam Bedrijf:</td>
            <td width="184"><label for="bedrijf"></label>
            <input name="bedrijf" type="text" id="bedrijf" value="<?php echo $_POST['bedrijf']; ?>"/></td>
            <td colspan="2">Onze winkel is open van Ma t/m Za vanaf 8:00</td>
          </tr>
          <tr>
            <td>Naam:</td>
            <td><input name="naam" type="text" id="naam" value="<?php echo $_POST['naam']; ?>"<?php echo $error->InputN; ?>/>
              <span class="vergeten">*</span></td>
            <td width="197">Bezorgen of afhalen:</td>
            <td width="235"><input type="radio" name="bezorg" id="radio" value="Bezorgen" />
              <label for="bezorg"></label>
            Bezorgen
            <input name="bezorg" type="radio" id="radio2" value="Afhalen" checked="checked" />
            Afhalen</td>
          </tr>
          <tr>
            <td>Adres:</td>
            <td><input name="adres" type="text" id="adres" value="<?php echo $_POST['adres']; ?>"<?php echo $error->InputA; ?>/>
              <span class="vergeten">*</span></td>
            <td>&nbsp;</td>
            <td><label for="bezorgkosten"></label>
              <select name="bezorgkosten" id="bezorgkosten">
                <option value="3.50">Alkmaar 3,50</option>
                <option value="7.00">Heerhugowaard 7,00</option>
                <option value="7.00">Heiloo 7,00</option>
                <option value="7.00">Bergen 7,00</option>
                <option value="7.00">Sint Pancras 7,00</option>
                <option value="7.00">Koedijk 7,00</option>
                <option value="7.00">Noord-Scharwoude 7,00</option>
                <option>Overige 0,60 p/km</option>
                <option selected="selected">Bezorgkosten Gebied:</option>
              </select></td>
          </tr>
          <tr>
            <td>E-mail: </td>
            <td><input name="email" type="text" id="email" value="<?php echo $_POST['email']; ?>"<?php echo $error->InputM; ?>/>
              <span class="vergeten">*</span></td>
            <td>Datum:</td>
            <td><input name="datum" type="text" id="datum" value="<?php echo date("d-m-Y"); ?>"/></td>
          </tr>
          <tr>
            <td>Telefoon:</td>
            <td><input name="telefoon" type="text" id="telefoon" value="<?php echo $_POST['telefoon']; ?>"<?php echo $error->InputT; ?> maxlength="10" />
              <span class="vergeten"><span class="MenuBarSubmenuVisible">*</span></span></td>
            <td>Gewenste tijd:</td>
            <td><input type="radio" name="tijdstip" id="radio3" value="1" />
              09:30 - 10:00 uur</td>
          </tr>
          <tr>
            <td>Toestelnummer:</td>
            <td><input name="toestel" type="text" id="toestel" value="<?php echo $_POST['toestel']; ?>" /></td>
            <td>&nbsp;</td>
            <td><input type="radio" name="tijdstip" id="radio4" value="2" />
              10:00 - 10:30 uur</td>
          </tr>
          <tr>
            <td class="vergeten">* Verplichte velden</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td><input type="radio" name="tijdstip" id="radio5" value="3" />
              10:30 - 11:00 uur</td>
          </tr>
        </table>
        <br />
        <br />
        <input type="submit" name="Controleer" id="Controleer" value="Controleer" />
        
</form>


Let op: sommige velden zijn nog niet in het script verwerkt ik liep eerst tegen dit puntje aan.
en in deze script is dus geen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_POST['aantal']; ?>
verwerkt omdat die geen juiste oplossing levert. Ik wil dus dat hij als iemand bijv: naam niet invoert dat hij onthoud welke aantallen waar besteld is.

Hieronder een link naar de site om te zien wat de bedoeling is:
Klik hier!

Hoop dat jullie mij kunnen helpen?

Met vriendelijke groet,

Mark

Toevoeging op 16/08/2013 20:14:21:

Probleem is verholpen heb hier en daar een session toegevoegd om hem te laten werken!


Deze topic mag verwijderd worden!
Gewijzigd op 16/08/2013 20:24:38 door Mark van den Brink
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.