|
Categorieën >
JavaScript
interactief formulier javascript (Opgelost)
kaspar – 25/08/2010 20:14 (Laatst gewijzigd op 25/08/2010 20:18)
|
|
offline
|
Nieuw lid
|
hallo, volgende code:
<html>
<head>
<title>Knome Electronics</title>
</head>
<body>
<table id="grand_table2">
<TR>
<TD vAlign=top align=left>
<TABLE cellSpacing="0" cellPadding="0" width="750" align="center">
<TR>
<TD width="360">
<FORM action="bestellen2.php" method="POST">
<FIELDSET>
<LEGEND>Product bestellen</LEGEND>
<SELECT name="product" onChange="javascript: overigen(document.getElementById('product').value);">
<?php
$db = mysql_connect("xxx","xxx", "xxx");
mysql_select_db("xxx",$db) or die ("Kan niet verbinden.");
$sql = "SELECT * FROM `artikel` ORDER BY naam ASC";
$result = mysql_query($sql);
$rows = mysql_num_rows($result);
while ($row = mysql_fetch_array($result)) {
echo '<option value="'.$row["naam"].'" name="'.$row["naam"].'">'.$row["naam"].'</option>';
}
?>
</SELECT> *<BR>
<div id="overigen" style="display:none"><textarea cols="65" rows="5" name="omschrijving">Omschrijf hier uw aanvraag.</textarea> *<br></div>
<INPUT type="text" name="initials" value="uw initialen" OnClick="initials.value=''"> *<BR>
<INPUT type="text" name="client" value="uw naam" OnClick="client.value=''"> *<BR>
<INPUT type="text" name="mail" value="uw e-mail" OnClick="mail.value=''"> *<BR>
<INPUT type="text" name="telephone" value="uw telefoonnummer" OnClick="telephone.value=''"><BR>
<INPUT type="submit" value="verstuur" id="submit"><BR><BR>
* = verplicht
<script language="Javascript">
function overigen(value)
{
If (value=="Overigen")
{
document.getElementById(overigen).style.display = 'block';
}
}
</script>
</FONT>
</FIELDSET>
</FORM>
</TD>
</TR>
</TABLE>
</TD>
</TR>
</body>
</html>
<table id="grand_table2"> <TD vAlign=top align=left> <TABLE cellSpacing="0" cellPadding="0" width="750" align="center"> <FORM action="bestellen2.php" method="POST"> <SELECT name="product" onChange="javascript: overigen(document.getElementById('product').value);"> <?php $db = mysql_connect("xxx","xxx", "xxx"); mysql_select_db("xxx",$db) or die ("Kan niet verbinden."); $sql = "SELECT * FROM `artikel` ORDER BY naam ASC"; $result = mysql_query($sql); $rows = mysql_num_rows($result); while ($row = mysql_fetch_array($result)) { echo '<option value="'.$row["naam"].'" name="'.$row["naam"].'">'.$row["naam"].' </option>'; } ?> <div id="overigen" style="display:none"><textarea cols="65" rows="5" name="omschrijving">Omschrijf hier uw aanvraag. </textarea> * <br></div> <INPUT type="text" name="initials" value="uw initialen" OnClick="initials.value=''"> * <BR> <INPUT type="text" name="client" value="uw naam" OnClick="client.value=''"> * <BR> <INPUT type="text" name="mail" value="uw e-mail" OnClick="mail.value=''"> * <BR> <INPUT type="text" name="telephone" value="uw telefoonnummer" OnClick="telephone.value=''"><BR> <INPUT type="submit" value="verstuur" id="submit"><BR><BR> * = verplicht <script language="Javascript"> function overigen(value) { If (value=="Overigen") { document.getElementById(overigen).style.display = 'block'; } }
de bedoeling is dat als je overigen selecteerd er een textarea verschijnt, maar wat er nu gebeurt: als je de select verandert, gebeurt er niks - waarom, en hoe verhelp ik het?
(bekijk het op http://electronics.knome.nl/bestellen.php) |
4 antwoorden
|
|
|
offline
|
Crew PHP
|
de functie wordt aangeroepen en later op de pagina pas 'gemaakt', dat kan javascript niet
|
|
|
|
offline
|
PHP gevorderde
|
Martijn, nu dacht ik toch dat je slimmer was. Het maakt helemaal niet uit waar de javascript code staat. De fout dat het niet werkt is omdat het hele script vol fouten zit.
Fout 1: je zoekt naar het element met id product. Maar dit bestaat niet, er bestaat alleen een element met name product.
Fout 2: aanhalingstekens vergeten om de textarea te laten zien
Fout 3: HTML code is van de jaren 80:
- alles in lowercase
- attribute language bij script bestaat niet
- eind tag font maar geen begin tag
Hier een aangepaste versie
<form action="bestellen2.php" method="POST">
<fieldset>
<legend>Product bestellen</legend>
<select name="product" onchange="javascript: overigen(this.options[this.selectedIndex].value);">
<option value="10Watt versterker" name="10Watt versterker">10Watt versterker</option>
<option value="1Watt versterker" name="1Watt versterker">1Watt versterker</option>
<option value="Computer beveiligingsslot" name="Computer beveiligingsslot">Computer
beveiligingsslot</option>
<option value="Computer timer" name="Computer timer">Computer timer</option>
<option value="Overigen" name="Overigen">Overigen</option>
<option value="Regelbare voeding" name="Regelbare voeding">Regelbare voeding</option>
</select>
*<br>
<div id="overigen" style="display: none;">
<textarea cols="65" rows="5" name="omschrijving">Omschrijf hier uw aanvraag.</textarea>
*<br>
</div>
<input type="text" name="initials" value="uw initialen" onclick="initials.value=''">
*<br>
<input type="text" name="client" value="uw naam" onclick="client.value=''">
*<br>
<input type="text" name="mail" value="uw e-mail" onclick="mail.value=''">
*<br>
<input type="text" name="telephone" value="uw telefoonnummer" onclick="telephone.value=''"><br>
<input type="submit" value="verstuur" id="submit"><br>
<br>
* = verplicht
<script type="text/javascript">
function overigen(value) {
if (value == "Overigen") {
document.getElementById('overigen').style.display = 'block';
}
}
</script>
</fieldset>
</form>
<form action="bestellen2.php" method="POST"> <select name="product" onchange="javascript: overigen(this.options[this.selectedIndex].value);"> <option value="10Watt versterker" name="10Watt versterker">10Watt versterker </option> <option value="1Watt versterker" name="1Watt versterker">1Watt versterker </option> <option value="Computer beveiligingsslot" name="Computer beveiligingsslot">Computer <option value="Computer timer" name="Computer timer">Computer timer </option> <option value="Regelbare voeding" name="Regelbare voeding">Regelbare voeding </option> <div id="overigen" style="display: none;"> <textarea cols="65" rows="5" name="omschrijving">Omschrijf hier uw aanvraag. </textarea> <input type="text" name="initials" value="uw initialen" onclick="initials.value=''"> <input type="text" name="client" value="uw naam" onclick="client.value=''"> <input type="text" name="mail" value="uw e-mail" onclick="mail.value=''"> <input type="text" name="telephone" value="uw telefoonnummer" onclick="telephone.value=''"><br> <input type="submit" value="verstuur" id="submit"><br> * = verplicht <script type="text/javascript"> function overigen(value) { if (value == "Overigen") { document.getElementById('overigen').style.display = 'block'; } }
|
|
|
|
offline
|
Crew PHP
|
lem, ik ben bezig met een spel wat stampvol js staat, en voor IE maakt t weldegelijk uit  iif voor eventlisteners en volgens JSlint validatie
|
kaspar – 26/08/2010 15:13 (Laatst gewijzigd op 26/08/2010 15:21)
|
|
offline
|
Nieuw lid
|
dank je, lemoinet, maar het werkte nog steeds niet...
ik heb zelf de laatste fout gevonden: If ipv if...
|
Dit onderwerp is gesloten.
|
|
|