check boxen en PHP_SELF
Ik post dus de gegevens naar dezelfde pagina (het formulier behoud de ingegeven data) zodat deze daar gecontroleerd worden , eventueel foutmeldingen weergeeft en dan (bij de volgende post als alles in orde is) worden de gegevens opgeslagen. Dit alles werkt perfect zolang ik met textboxen werk. Met checkboxen weet ik niet hoe ik juist checkbox kan checken als deze aangevinkt was. (value attribuut doorgeven werkt niet)
Deel van de code:
<form action="" method="post">
<INPUT name ="email" type="text" size ="20" maxlength="20" value ="" >
<INPUT name ="mailinfo" type="checkbox" value="">
etc..
</FORM>
Als je checkbox name="mailinfo" geeft, en value is (bij aanvinken) "1" gaat het wel.
Dus: name="mailinfo" value="1".
Php maakt hier zelf van $mailinfo = "1"
Je moet dan nog wel maken dat als de waarde niet "1" is, hij dan bijv. "0" is.
Dit werk iig, maar ik weet niet wat je precies wil.
Cheers
greetz
Probeer in je if(isset($submit.... (als je dat gebruikt) de volgende code in te bouwen:
echo 'Updaten...<br>';
echo '<META HTTP-EQUIV=Refresh CONTENT="2; URL='.$_SERVER['PHP_SELF'].'">';
Hij ververst dan zelf en op die manier heeft het later met de hand refreshen geen effect op het script.
Cheers, Niels
Met $submit krijg ik het niet aan de praat.
(wordt niet true)
<INPUT type = "submit" value = "Bevestig">
in dezelfde form zou die variabele toch moeten setten denk ik. Ik mis nog iets denk ik
greetz
wat werkt r nog niet dan?
Maar dan doet hij niet wat ik wil, bij het refreshen worden alle velden geledigd in het formulier.
greetz
Danny
Heb je mijn regels r al in staan?
Pass je script maares
<form action="" method="post">
<table width="37%" border="0">
<tr>
<td width="48%">Naam* :</td>
<td width="52%"><input name ="user" type="text" size="20" maxlength="20" value ="" ></td>
</tr>
<tr>
etc etc
</FORM>
Code (php)
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
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
<?php
require('configuratie.php');
echo $mailinfo;
$fout=false;
if(isset($_POST['submit'])){
echo 'Updaten...<br>';
echo '<META HTTP-EQUIV=Refresh CONTENT="2; URL='.$_SERVER['PHP_SELF'].'">';
//als we hier komen is de data ingegeven en moete ze gecontroleerd worden.
if (trim($user) =="") {
echo "<FONT color='red'>Naam is niet ingevuld!<BR></FONT>";
$fout=true;
};
if (strlen(trim($password))<6){
echo "<FONT color='red'>Paswoord moet minimum 6 karakters zijn!<BR></FONT>";
$fout=true;
};
if (trim($password)!=trim($password2) ){
echo "<FONT color='red'>Paswoord komt niet overeen!<BR></FONT>";
$fout=true;
};
if (!eregi("^.[a-zA-Z0-9_.\.-]+@[a-z0-9_]+\\.[a-z]+",trim($email))){
echo "<FONT color='red'>Foutieve email<BR></FONT>";
$fout=true;
};
if ($fout==true){
exit();
};
//als er geen fouten zijn; boeltje opslaan in database
require('configuratie.php');
echo $mailinfo;
$fout=false;
if(isset($_POST['submit'])){
echo 'Updaten...<br>';
echo '<META HTTP-EQUIV=Refresh CONTENT="2; URL='.$_SERVER['PHP_SELF'].'">';
//als we hier komen is de data ingegeven en moete ze gecontroleerd worden.
if (trim($user) =="") {
echo "<FONT color='red'>Naam is niet ingevuld!<BR></FONT>";
$fout=true;
};
if (strlen(trim($password))<6){
echo "<FONT color='red'>Paswoord moet minimum 6 karakters zijn!<BR></FONT>";
$fout=true;
};
if (trim($password)!=trim($password2) ){
echo "<FONT color='red'>Paswoord komt niet overeen!<BR></FONT>";
$fout=true;
};
if (!eregi("^.[a-zA-Z0-9_.\.-]+@[a-z0-9_]+\\.[a-z]+",trim($email))){
echo "<FONT color='red'>Foutieve email<BR></FONT>";
$fout=true;
};
if ($fout==true){
exit();
};
//als er geen fouten zijn; boeltje opslaan in database
Code (php)
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
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
<?php
if(isset($_POST['submit'])){
if (trim($user) =="") {
echo "<FONT color='red'>Naam is niet ingevuld!<BR></FONT>";
$fout=true;
}
if (strlen(trim($password))<6){
echo "<FONT color='red'>Paswoord moet minimum 6 karakters zijn!<BR></FONT>";
$fout=true;
}
if (trim($password)!=trim($password2) ){
echo "<FONT color='red'>Paswoord komt niet overeen!<BR></FONT>";
$fout=true;
}
if (!eregi("^.[a-zA-Z0-9_.\.-]+@[a-z0-9_]+\\.[a-z]+",trim($email))){
echo "<FONT color='red'>Foutieve email<BR></FONT>";
$fout=true;
}
else {
//boeltje opslaan in database en:
echo 'Updaten...<br>';
echo '<META HTTP-EQUIV=Refresh CONTENT="2; URL='.$_SERVER['PHP_SELF'].'">';
}
}
// laatste } was je vergeten, van de if(isset())
?>
if(isset($_POST['submit'])){
if (trim($user) =="") {
echo "<FONT color='red'>Naam is niet ingevuld!<BR></FONT>";
$fout=true;
}
if (strlen(trim($password))<6){
echo "<FONT color='red'>Paswoord moet minimum 6 karakters zijn!<BR></FONT>";
$fout=true;
}
if (trim($password)!=trim($password2) ){
echo "<FONT color='red'>Paswoord komt niet overeen!<BR></FONT>";
$fout=true;
}
if (!eregi("^.[a-zA-Z0-9_.\.-]+@[a-z0-9_]+\\.[a-z]+",trim($email))){
echo "<FONT color='red'>Foutieve email<BR></FONT>";
$fout=true;
}
else {
//boeltje opslaan in database en:
echo 'Updaten...<br>';
echo '<META HTTP-EQUIV=Refresh CONTENT="2; URL='.$_SERVER['PHP_SELF'].'">';
}
}
// laatste } was je vergeten, van de if(isset())
?>
Je gebruikt pas die tag refresh als je daadwerkelijk alles opslaat in de database. Als ie namelijk alleen een fout teruggeeft hoeft ie niet te refreshen.
Let op je parameters!
Dit script kun je helemaal gebruiken, maak nu nog de tag "boeltje opslaan in database"
Cheers
Gewijzigd op 07/12/2004 22:25:00 door Niels
greetz
Je wilt dat de gegevens niet verloren gaan als r een foutmelding is geweest.
In de meeste gevallen gaat inderdaad de hele invoer weg.
Oplossing, ik zal s rondkijken...
Cheers