JeroenE
Terugkerende gebruiker
- Lid geworden
- 20 mrt 2005
- Berichten
- 1.950
Hallo,
Ik heb een kleine functie gemaakt die ervoor zorgt dat aan de hand van de gekozen letter in de ene select een tweede select gevuld wordt met bijhorende opties.
Hier is de pagina waar het op draait met het werkende testscript:
Hier is de pagina met het uiteindelijke script dat niet werkt:
Het probleem zit in de gecombineerde code javascript-php waar ik een javascript array vul met gegevens uit een php array.
zet ik de eerste, werkende functie binnen dezelfde script tags als de gecombineerde code, dan werkt deze ook niet meer.
Hoe los ik dit op?
Hier is de pagina waar beide codes in staan, en waar ik de werkende code tussen zijn eigen script tags heb gezet zodat die werkt. Je zal zien dat de gecombineerde code ook werkt en alles netjes in een javascript array zet.
Alvast bedankt voor het helpen vinden van de oplossing.
Groetjes,
Jeroen
Ik heb een kleine functie gemaakt die ervoor zorgt dat aan de hand van de gekozen letter in de ene select een tweede select gevuld wordt met bijhorende opties.
Hier is de pagina waar het op draait met het werkende testscript:
PHP:
<?php
$aalphabeth = array(" ", "A", "B", "C", "D", "E", "F", "G", "H", "J", "I", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
?>
<script language="javascript" type="text/javascript">
// deze functie werkt
function flocations(sletter) {
var objx = document.getElementById("loc");
while (objx.length > 0) {
objx.remove(objx.length-1);
};
for (var $na = 0; $na <= 7; $na++) {
var snewloc = document.createElement("option");
if ($na != 5) {
snewloc.text = ($na == 0) ? "Kies een gemeente" : "Dit is optie " + $na;
} else {
snewloc.text = "Je koos de letter " + sletter;
};
objx.add(snewloc);
};
};
</script>
<form name="infoform" method="post" action="<?php $PHP_SELF ?>">
<div id="detailsdiv">
<div id="detailstitlediv" class="titlediv">Gegevens</div>
<div id="detailscontentdiv" class="contentsdiv">
<center>
<b>Gemeente, contactpersoon en website</b>
</center>
<br />
<table>
<tr>
<td>Gemeente:
<select name="firstletter" onchange="javascript:flocations(this.value);">
<?php
for ($na = 0; $na <= count($aalphabeth); $na++) {
?>
<option value="<?php echo $aalphabeth[$na]; ?>"><?php echo $aalphabeth[$na]; ?></option>
<?php
};
?>
</select></td>
<td><select name="loc" id="loc" style="width: 135px" />
<option>1</option><option>2</option>
</select>
<font color="#ff0000">*</font></td>
</tr>
<tr>
<td>Contactpersoon:</td>
<td><input name="contact" /></td>
</tr>
<tr>
<td>G.S.M.:</td>
<td><input name="cell" /></td>
</tr>
<tr>
<td>E-mail:</td>
<td><input name="mail" /></td>
</tr>
<tr>
<td>Website:</td>
<td><input name="site" /></td>
</tr>
</table>
</div>
</div>
<div id="hoursdiv">
<div id="hourstitlediv" class="titlediv">Openingsuren</div>
<div id="hourscontentdiv" class="contentsdiv">
<center>
<table id="hourstable" cellspacing="0">
<tr>
<th colspan="5" class="hourstableheader">Van ..u tot ..u</th>
</tr>
<?php
for ($na = 0; $na < count($adays); $na++) {
?>
<tr>
<th><?php echo substr($adays[$na], 0, 2); ?></th>
<td><input size="3" name="<?php echo $adays[$na]; ?>starthour" maxlength="2">
u
<input size="3" name="<?php echo $adays[$na]; ?>startminutes" maxlength="2"></td>
<td>tot</td>
<td><input size="3" name="<?php echo $adays[$na]; ?>stophour" maxlength="2">
u
<input size="3" name="<?php echo $adays[$na]; ?>stopminutes" maxlength="2"></td>
<?php //echo $aperiods[$na]; ?>
</td>
</tr>
<?php
};
?>
<tr>
<td colspan="5" class="hourstablefooter"><marquee>
<?php echo $schicricomment; ?>
</marquee></td>
</tr>
</table>
</center>
</div>
</div>
<div id="picturediv">
<div id="picturetitlediv" class="titlediv"> </div>
<div id="icerinkimgdiv"><br />
<center>
<textarea cols="45" rows="15" name="comment"></textarea>
</center>
</div>
</div>
<div id="linksdiv">
<div id="linkstitlediv" class="titlediv">Opmerking</div>
<div id="linkscontentdiv" class="contentsdiv">
<center>
<input type="submit" value="Verzenden"/>
<input type="reset" value="Beginwaarden" />
</center>
</div>
</div>
</form>
Hier is de pagina met het uiteindelijke script dat niet werkt:
PHP:
<?php
$aalphabeth = array(" ", "A", "B", "C", "D", "E", "F", "G", "H", "J", "I", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
?>
<script language="javascript" type="text/javascript">
var alocations = new Array("Kies een gemeente");
<?php
for ($na = 0; $na < count($azipcodes); $na++) {
?>
alocations[<?php echo $na+1; ?>] = "<?php echo $azipcodes[$na]["location"]; ?>";
<?php
};
?>
//deze functie werkt niet
function flocations(sletter) {
var objx = document.getElementById("loc");
while (objx.length > 0) {
objx.remove(objx.length-1);
};
for (var na = 0; na < alocations.length; na++) {
var snewloc = document.createElement("option");
if (na == 0) {
snewloc.text = alocations[na];
} else if (alocations[na].substr(0,1) == sletter) {
snewloc.text = alocations[na];
};
objx.add(snewloc);
};
};
</script>
<form name="infoform" method="post" action="<?php $PHP_SELF ?>">
<div id="detailsdiv">
<div id="detailstitlediv" class="titlediv">Gegevens</div>
<div id="detailscontentdiv" class="contentsdiv">
<center>
<b>Gemeente, contactpersoon en website</b>
</center>
<br />
<table>
<tr>
<td>Gemeente:
<select name="firstletter" onchange="javascript:flocations(this.value);">
<?php
for ($na = 0; $na <= count($aalphabeth); $na++) {
?>
<option value="<?php echo $aalphabeth[$na]; ?>"><?php echo $aalphabeth[$na]; ?></option>
<?php
};
?>
</select></td>
<td><select name="loc" id="loc" style="width: 135px" />
<option>1</option><option>2</option>
</select>
<font color="#ff0000">*</font></td>
</tr>
<tr>
<td>Contactpersoon:</td>
<td><input name="contact" /></td>
</tr>
<tr>
<td>G.S.M.:</td>
<td><input name="cell" /></td>
</tr>
<tr>
<td>E-mail:</td>
<td><input name="mail" /></td>
</tr>
<tr>
<td>Website:</td>
<td><input name="site" /></td>
</tr>
</table>
</div>
</div>
<div id="hoursdiv">
<div id="hourstitlediv" class="titlediv">Openingsuren</div>
<div id="hourscontentdiv" class="contentsdiv">
<center>
<table id="hourstable" cellspacing="0">
<tr>
<th colspan="5" class="hourstableheader">Van ..u tot ..u</th>
</tr>
<?php
for ($na = 0; $na < count($adays); $na++) {
?>
<tr>
<th><?php echo substr($adays[$na], 0, 2); ?></th>
<td><input size="3" name="<?php echo $adays[$na]; ?>starthour" maxlength="2">
u
<input size="3" name="<?php echo $adays[$na]; ?>startminutes" maxlength="2"></td>
<td>tot</td>
<td><input size="3" name="<?php echo $adays[$na]; ?>stophour" maxlength="2">
u
<input size="3" name="<?php echo $adays[$na]; ?>stopminutes" maxlength="2"></td>
<?php //echo $aperiods[$na]; ?>
</td>
</tr>
<?php
};
?>
<tr>
<td colspan="5" class="hourstablefooter"><marquee>
<?php echo $schicricomment; ?>
</marquee></td>
</tr>
</table>
</center>
</div>
</div>
<div id="picturediv">
<div id="picturetitlediv" class="titlediv"> </div>
<div id="icerinkimgdiv"><br />
<center>
<textarea cols="45" rows="15" name="comment"></textarea>
</center>
</div>
</div>
<div id="linksdiv">
<div id="linkstitlediv" class="titlediv">Opmerking</div>
<div id="linkscontentdiv" class="contentsdiv">
<center>
<input type="submit" value="Verzenden"/>
<input type="reset" value="Beginwaarden" />
</center>
</div>
</div>
</form>
Het probleem zit in de gecombineerde code javascript-php waar ik een javascript array vul met gegevens uit een php array.
zet ik de eerste, werkende functie binnen dezelfde script tags als de gecombineerde code, dan werkt deze ook niet meer.
Hoe los ik dit op?
Hier is de pagina waar beide codes in staan, en waar ik de werkende code tussen zijn eigen script tags heb gezet zodat die werkt. Je zal zien dat de gecombineerde code ook werkt en alles netjes in een javascript array zet.
Alvast bedankt voor het helpen vinden van de oplossing.
Groetjes,
Jeroen
Laatst bewerkt: