JS Dropdown die niet gevalideert wil worden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Michel Meinema

Michel Meinema

14/04/2011 14:30:16
Quote Anchor link
Hallo,

Ik heb een form met daarin een JS dropdown menu.
Als je een optie uit de dropdown kiest komt er een per optie verschillend invoer veld tevoorschijn.

Ik zou bij het valideren van zo'n invoer veld graag iets zien zoals:

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
<?php
@$d_leeftijd = addslashes($_POST['d_leeftijd']);
@
$b_leeftijd = addslashes($_POST['b_leeftijd']);
@
$e_leeftijd = addslashes($_POST['e_leeftijd']);
@
$p_leeftijd = addslashes($_POST['p_leeftijd']);
@
$t_leeftijd = addslashes($_POST['t_leeftijd']);

//************

$tm="t/m";
$jaar="jaar";
$plus="+";
$tot="tot";

//************

if ($d_leeftijd=='AL'){
$leeftijd = ('AL');
}
elseif ($d_leeftijd=='"" t/m ""'){
$leeftijd = $b_leeftijd.$tm.$e_leeftijd.$jaar;
}
elseif ($d_leeftijd=='""+'){
$leeftijd = $p_leeftijd.$plus;
}
elseif ($d_leeftijd=='Tot ""'){
$leeftijd = $tot.$t_leeftijd;
}

echo ($leeftijd);
if ($d_leeftijd=='"" t/m ""')
{

if (strlen($b_leeftijd) and ($e_leeftijd) ==0){
echo("<p align='center'><font face='Arial' size='3' color='#FF0000'>Controleer de door u opgegeven leeftijd.</font></p>");
}
}

if ($d_leeftijd=='""+')
{

if (strlen($p_leeftijd) ==0){
echo("<p align='center'><font face='Arial' size='3' color='#FF0000'>Controleer de door u opgegeven leeftijd.</font></p>");
}
}

if ($d_leeftijd=='Tot ""'){
if (strlen($t_leeftijd) ==0)
{

echo("<p align='center'><font face='Arial' size='3' color='#FF0000'>Controleer de door u opgegeven leeftijd.</font></p>");
}
}

?>


De dropdown ziet er als volgt uit:

<html>
<head>
<script type="text/javascript">
// <![CDATA[
function display(lobj,lid1,lid2,lid3) {
txt = lobj.options[lobj.selectedIndex].value;
document.getElementById(lid1).style.display = 'none';
document.getElementById(lid2).style.display = 'none';
document.getElementById(lid3).style.display = 'none';
if ( txt.match(lid1) ) {
document.getElementById(lid1).style.display = 'block';
}
if ( txt.match(lid2) ) {
document.getElementById(lid2).style.display = 'block';
}
if ( txt.match(lid3) ) {
document.getElementById(lid3).style.display = 'block';
}
}
// ]]>
</script>
</head>
<body>
<h4>Leeftijd:</h4><br />
<table align="right">
<select name="d_leeftijd" id="d_leeftijd" onchange="display(this,'tm','p','tot');">
<option>AL</option>
<option value="tm">"" t/m ""</option>
<option value="p">""+</option>
<option value="tot">Tot ""</option>
</select><br />
<tbody id="tm" style="display: none;">
<tr>
<td class="field"><input type="text" name="b_leeftijd" id="b_leeftijd" size="2" maxlength="2" /><br>t/m<br><input type="text" name="e_leeftijd" id="b_leeftijd" size="2" maxlength="2" /><br>jaar</td>
</tr>
</tbody>
<tbody id="p" style="display: none;">
<tr>
<td class="field"><input type="text" name="p_leeftijd" id="p_leeftijd" size="2" maxlength="2" /> +</td>
</tr>
</tbody>
<tbody id="tot" style="display: none;">
<tr>
<td class="field">Tot<br><input type="text" name="t_leeftijd" id="t_leeftijd" size="2" maxlength="2" /><br>jaar</td>
</tr>
</tbody>
</table>
</body>
</html>

Is er iemand die een oplossing weet?

Alvast bedankt...
 
PHP hulp

PHP hulp

24/11/2024 09:18:00
 
Gerben Jacobs

Gerben Jacobs

14/04/2011 15:31:10
Quote Anchor link
Maar wat is nu je echte vraag.
 
Michel Meinema

Michel Meinema

14/04/2011 16:36:37
Quote Anchor link
Gerben Jacobs op 14/04/2011 15:31:10:
Maar wat is nu je echte vraag.


Bovenstaand script werkt niet...

Als je voor optie AL in het dropdown menu kiest is de inhoud gewoon ' AL ' en gaat alles goed, maar zodra je de bijvoorbeeld voor optie ' ""+ ' kiest en er een invoer veld verschijnt waar je een leeftijd in moet vullen dan word hij opeens niet meer gevalideert.
hetzelfde geld voor opties ' Tot"" ' en ' ""t/m"" ' in het dropdown menu.

Hoe kan ik het script laten laten weten welke keuze er in het dropdown menu is gemaakt en alleen de daarbij horende invoer velden laten valideren...
 
Gerben Jacobs

Gerben Jacobs

14/04/2011 16:42:00
Quote Anchor link
Als je het name="" attribuut van je input-velden op deze manier een naam geeft: "data[t_leeftijd]" dan krijg je na submission een array genaamd $_POST["data"], hier kan je dan door heen loopen en kijken welke velden ingevuld zijn.
 
Michel Meinema

Michel Meinema

15/04/2011 09:05:40
Quote Anchor link
Gerben Jacobs op 14/04/2011 16:42:00:
Als je het name="" attribuut van je input-velden op deze manier een naam geeft: "data[t_leeftijd]" dan krijg je na submission een array genaamd $_POST["data"], hier kan je dan door heen loopen en kijken welke velden ingevuld zijn.


Ik krijg alle POST data gewoon binnen in het script en ik kan het met een echo ook weergeven...

Alleen hoe kan ik nou zeggen dat als de value van de dropdown bijvoorbeeld ' ""+ ' is, hij alleen de het invoer veld wat daar bij hoort valideert?

Is het misschien ook mogelijk om een klein voorbeeld script te posten, dan heb ik iets om te beginnen...

Alvast bedankt.
Gewijzigd op 15/04/2011 09:06:28 door Michel Meinema
 
Michel Meinema

Michel Meinema

16/04/2011 16:29:07
Quote Anchor link
Iemand een idee??
Gewijzigd op 18/04/2011 12:00:19 door Michel Meinema
 
Michel Meinema

Michel Meinema

18/04/2011 13:12:17
Quote Anchor link
Ik heb zelf het idee dat het niet zo moeilijk moet zijn, maar ik kan er niet echt achter komen hoe ik het werkend kan krijgen...

Heb me ook al helemaal kapot gegoogled, maar zonder resultaat...
 
Gerben Jacobs

Gerben Jacobs

18/04/2011 15:48:56
Quote Anchor link
Aangezien niemand reageert, denk ik dat ik voor velen spreek als ik zeg, dat je vraag nog steeds heel onduidelijk is.

Wat is ('""+ ')? Wat wil je valideren? Een veld met JS? Of een waarde met PHP?
Plaats anders ook een voorbeeld URL waar we kunnen kijken wat jij bedoelt.
 
Write Down

Write Down

18/04/2011 16:37:07
Quote Anchor link
Gerben Jacobs op 18/04/2011 15:48:56:
Aangezien niemand reageert, denk ik dat ik voor velen spreek als ik zeg, dat je vraag nog steeds heel onduidelijk is.

Wat is ('""+ ')? Wat wil je valideren? Een veld met JS? Of een waarde met PHP?
Plaats anders ook een voorbeeld URL waar we kunnen kijken wat jij bedoelt.

Klopt. Topics waar weinig moeite ingestoken is, stoppen wij ook geen moeite in :-)
 



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.