If RadioButton checked -> echo???
Ik wil graag in mijn contactformulier mensen de keuze geven of ze een offerte aanvragen of niet. Als ze via radiobuttons zeggen dat ze dat wel willen wil ik dat er via echo meerdere velden in het contactformulier zichtbaar worden.
Dit is wat ik heb:
Een deel van de HTML:
Code (php)
1
2
3
2
3
<p>Wilt u een offerte aanvragen?:
<label><input name="offerte" type="radio" value="ja" />Ja</label>
<label><input name="offerte" type="radio" checked="checked" value="nee" />Nee</label>
<label><input name="offerte" type="radio" value="ja" />Ja</label>
<label><input name="offerte" type="radio" checked="checked" value="nee" />Nee</label>
De PHP:
Code (php)
Wie kan me helpen, want ik weet niet hoe het anders moet...
Hebben ze php wat veiliger gemaakt door de superglobals en dan doe jij dat weer teniet door extract($_POST) te gebruiken. Niet echt slim lijkt mij.
Hoe kan ik dat dan beter doen? Heb je een link of een voorbeeld?
Geen extract() gebruiken. Gewoon weglaten die regel. En dan verder niet $offerte maar $_POST['offerte'] gebruiken (uiteraard geldt dit voor alle vars uit het formulier).
Weet je toevallig ook, hoe ik het moet doen met de radiobuttons?
M'n php is nu trouwens:
Code (php)
In plaats van 20x hetzelfde te zeggen zou je je ook even in de vraag kunnen verdiepen en aangeven dat dit dmv javascript moet en niet dmv PHP.
Edit:
Code (php)
1
2
3
2
3
<input type="checkbox" onclick=" if (this.checked) { document.getElementById('invoerveld').style.display = 'inline'; document.getElementById('invoerveld').style.visibility = 'visible'; } else { document.getElementById('invoerveld').style.display = 'none'; document.getElementById('invoerveld').style.visibility = 'hidden'; }">Show Input
<input file="text" id="invoerveld" style="display:none">
<input file="text" id="invoerveld" style="display:none">
Gewijzigd op 09/07/2010 16:55:16 door Michael -
Ok, heel erg bedankt! Dan ga ik nu even kijken of ik het aan de praat kan krijgen...
Ik wil eigenlijk gewoon dat als ik een radiobutton selecteer op ja, dat er dan meteen daaronder nieuwe velden zichtbaar worden. Moet ik nu dan php combineren met Javascript of niet, want door SanThe Nvt snap ik er niets meer van!
SanThe's oplossing kun je gebruiken, maar dan moet je eerst op de submit knop drukken en daarna komt er een veld bij. Mijn stukje javascript kun je d.m.v. het aanklikken van een checkbox (of je maakt er een radio van) gelijk een input veld te voorschijn halen.
Gewijzigd op 09/07/2010 18:19:29 door Michael -
Dus dit:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<script type "text/javascript>
<input type="checkbox" onclick=" if (this.checked) {
document.getElementById('invoerveld').style.display = 'inline';
document.getElementById('invoerveld').style.visibility = 'visible'; } else {
document.getElementById('invoerveld').style.display = 'none';
document.getElementById('invoerveld').style.visibility = 'hidden'; }">Show Input
<input file="text" id="invoerveld" style="display:none">
</script>
<input type="checkbox" onclick=" if (this.checked) {
document.getElementById('invoerveld').style.display = 'inline';
document.getElementById('invoerveld').style.visibility = 'visible'; } else {
document.getElementById('invoerveld').style.display = 'none';
document.getElementById('invoerveld').style.visibility = 'hidden'; }">Show Input
<input file="text" id="invoerveld" style="display:none">
</script>
Ik verveel me dus heb nog wat gefabriceerd wat misschien beter past bij je wensen (met radio).
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
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
<html>
<head>
<script type="text/javascript">
<!--
function toggle()
{
if (offerte.checked)
{
document.getElementById('invoerveld').style.display = 'inline'; document.getElementById('invoerveld').style.visibility = 'visible';
}
else
{
document.getElementById('invoerveld').style.display = 'none'; document.getElementById('invoerveld').style.visibility = 'hidden';
}
}
-->
</script>
</head>
<body>
<?php
if(isset($_POST['offerte']) && $_POST['offerte'] == 'nee')
echo 'Dan niet ';
elseif(isset($_POST['offerte']) && $_POST['offerte'] == 'ja')
echo 'Goed zo ';
if(isset($_POST['invoerveld']))
echo $_POST['invoerveld'];
?>
<form method="post" action="">
<input type="radio" name="offerte" value="ja" id="offerte" onclick="toggle();"/> Ja
<input type="radio" name="offerte" value="nee" id="offerte" onclick="toggle();" checked="checked"/> Nee
<input file="text" name="invoerveld" id="invoerveld" style="display:none"/><br/>
<input type="submit"/>
</form>
</body>
</html>
<head>
<script type="text/javascript">
<!--
function toggle()
{
if (offerte.checked)
{
document.getElementById('invoerveld').style.display = 'inline'; document.getElementById('invoerveld').style.visibility = 'visible';
}
else
{
document.getElementById('invoerveld').style.display = 'none'; document.getElementById('invoerveld').style.visibility = 'hidden';
}
}
-->
</script>
</head>
<body>
<?php
if(isset($_POST['offerte']) && $_POST['offerte'] == 'nee')
echo 'Dan niet ';
elseif(isset($_POST['offerte']) && $_POST['offerte'] == 'ja')
echo 'Goed zo ';
if(isset($_POST['invoerveld']))
echo $_POST['invoerveld'];
?>
<form method="post" action="">
<input type="radio" name="offerte" value="ja" id="offerte" onclick="toggle();"/> Ja
<input type="radio" name="offerte" value="nee" id="offerte" onclick="toggle();" checked="checked"/> Nee
<input file="text" name="invoerveld" id="invoerveld" style="display:none"/><br/>
<input type="submit"/>
</form>
</body>
</html>
Gewijzigd op 09/07/2010 18:22:23 door Michael -
http://www.jasites.nl/test.php
Zou je me nog kunnen helpen? Ik vind dit trouwens al echt heel erg fijn! Echt bedankt dat je me zo erg helpt!
Dat is al heel fijn, maar nu komt er nog niets onder te staan als ik op ja klik. Hier kan je het bekijken: Zou je me nog kunnen helpen? Ik vind dit trouwens al echt heel erg fijn! Echt bedankt dat je me zo erg helpt!
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
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
<html>
<head>
<script type="text/javascript">
function toggle(weergeef){
document.getElementById('invoerveld').style.display = weergeef == 'ja' ? '' : 'none';
}
</script>
</head>
<body>
<?php
if(isset($_POST['offerte']) && $_POST['offerte'] == 'nee')
echo 'Dan niet ';
elseif(isset($_POST['offerte']) && $_POST['offerte'] == 'ja')
echo 'Goed zo ';
if(isset($_POST['invoerveld']))
echo $_POST['invoerveld'];
?>
<form method="post" action="">
<label><input type="radio" name="offerte" value="ja" id="offerte" onclick="toggle(this.value);" /> Ja</label>
<label><input type="radio" name="offerte" value="nee" id="offerte" onclick="toggle(this.value);" checked="checked" /> Nee</label>
<input file="text" name="invoerveld" id="invoerveld" style="display:none"/><br />
<input type="submit" />
</form>
</body>
</html>
<head>
<script type="text/javascript">
function toggle(weergeef){
document.getElementById('invoerveld').style.display = weergeef == 'ja' ? '' : 'none';
}
</script>
</head>
<body>
<?php
if(isset($_POST['offerte']) && $_POST['offerte'] == 'nee')
echo 'Dan niet ';
elseif(isset($_POST['offerte']) && $_POST['offerte'] == 'ja')
echo 'Goed zo ';
if(isset($_POST['invoerveld']))
echo $_POST['invoerveld'];
?>
<form method="post" action="">
<label><input type="radio" name="offerte" value="ja" id="offerte" onclick="toggle(this.value);" /> Ja</label>
<label><input type="radio" name="offerte" value="nee" id="offerte" onclick="toggle(this.value);" checked="checked" /> Nee</label>
<input file="text" name="invoerveld" id="invoerveld" style="display:none"/><br />
<input type="submit" />
</form>
</body>
</html>
Ik kan echt altijd rekenen op de mensen bij phphulp.nl!
Te weten:
Jongen
Meisje
Onbekend
Ik wil graag weten als er iemand een kaart besteld wat het gaat worden.
Dit is een gedeelte van de php code:
/* Gathering Data Variables */
$aanvraagField = $_POST['aanvraag'];
$naamField = $_POST['naam'];
$adresField = $_POST['adres'];
$postcodeField = $_POST['postcode'];
$woonplaatsField = $_POST['woonplaats'];
$telnoField = $_POST['telno'];
$emailField = $_POST['email'];
$uitgerekendField = $_POST['uitgerekend'];
$naamkidsField = $_POST['naamkids'];
$jongenField = $_POST['jongen'];
$meisjeField = $_POST['meisje'];
$onbekendField = $_POST['onbekend'];
$trouwdatumField = $_POST['trouwdatum'];
$tekstField = $_POST['tekst'];
$gevondenField = $_POST['gevonden'];
$body = <<<EOD
<br><hr><br>
Aangevraagd kaartje: $aanvraagField <br>
Naam: $naamField <br>
Adres: $adresField <br>
Postcode: $postcodeField <br>
Woonplaats: $woonplaatsField <br>
Telefoonnummer: $telnoField <br>
Email: $emailField <br>
Uitrekendatum: $uitgerekendField <br>
Naam kind: $naamkidsField <br>
Jongen: $jongenField <br>
Meisje: $meisjeField <br>
Onbekend: $onbekendField <br>
Datum trouwen/adoptie/geboorte: $trouwdatumField <br>
Tekst: $tekstField <br>
Naam gevonden: $gevondenField <br>
EOD;
Je reageert op een topic van een jaar geleden, maak even een nieuw topic aan aub