Ik heb een dialoogvenstertje in HTML/PHP gemaakt waarmee je kunt invoeren welke gemeenten je wilt weergeven. Als je op OK klikt, sluit het venstertje en kun je zoeken.
form_provincie_selectie():
De methode die ik heb gebruikt in de functie ingevuld_en_klaar() werkt.
Ik wil graag een universele functie die voor elk dialoogvenster kan werken, zodat ik deze met php kan uitpoepen.
Ik bedacht het volgende:
Dit werkt!
Nu nog ff in een for-lus prakken. Dit liep fout.
Om na te gaan hoe en wat, heb ik dit in de functie ingevuld_en_klaar() gezet:
De windows.close() er uit gehaald om te voorkomen dat het venster sluit.
Dit debug-scriptje blijft hangen of wordt afgebroken. Op het scherm zie ik de output "3 Test1".
Als ik de regel "document.write(document.forms[0].elements.length);" verwijder, dan verschijnt ook Test2.
Het lijkt dus aan die "document.write(document.forms[0].elements.length);" te liggen.
Maar waarom loopt hier het script op mis?
EDIT: De fout lijkt gevonden te zijn. door de eerdere writes, verdwijnt het formulier en zijn de bijbehorende objecten niet meer definieerd.
code:
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
| <FORM onSubmit="ingevuld_en_klaar()">
<table>
<tr><td>Gemeente:</td><td><INPUT TYPE=TEXT NAME="FORM_gemeente" VALUE="" MAXLENGTH=40 SIZE=40></td></tr>
<tr><td>Provincie:</td><td>
<?php form_provincie_selectie(); ?>
</td></tr>
<tr><td><br>Sorteren op:</td><td>
<br><select name="FORM_sorteren">
<option value="1">gemeente</option>
<option value="2">provincie</option>
<option value="3">ID</option>
</select>
</td></tr>
</table><p>
<CENTER>
<INPUT TYPE=SUBMIT VALUE="OK">
<INPUT TYPE=BUTTON VALUE="Annuleren" onClick="window.close()">
</CENTER>
</FORM>
<script language="JavaScript">
function ingevuld_en_klaar() {
opener.top.frames[1].document.forms[0].FORM_gemeente.value = document.forms[0].FORM_gemeente.value;
opener.top.frames[1].document.forms[0].FORM_provincie.value = document.forms[0].FORM_provincie.value;
opener.top.frames[1].document.forms[0].FORM_sorteren.value = document.forms[0].FORM_sorteren.value;
opener.top.frames[1].document.forms[0].submit();
window.close();
}
</script> |
form_provincie_selectie():
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| function form_provincie_selectie() {
echo '<select name="FORM_provincie">';
echo '<option value="0"></option>';
echo '<option value="1">Brabant</option>';
echo '<option value="2">Drenthe</option>';
echo '<option value="3">Flevoland</option>';
echo '<option value="4">Friesland</option>';
echo '<option value="5">Gelderland</option>';
echo '<option value="6">Groningen</option>';
echo '<option value="7">Limburg</option>';
echo '<option value="8">Noord Holland</option>';
echo '<option value="9">Utrecht</option>';
echo '<option value="10">Zeeland</option>';
echo '<option value="11">Zuid Holland</option>';
echo '</select>';
} |
De methode die ik heb gebruikt in de functie ingevuld_en_klaar() werkt.
Ik wil graag een universele functie die voor elk dialoogvenster kan werken, zodat ik deze met php kan uitpoepen.
Ik bedacht het volgende:
code:
1
2
3
| opener.top.frames[1].document.forms[0].elements[0].value = document.forms[0].elements[0].value; opener.top.frames[1].document.forms[0].elements[1].value = document.forms[0].elements[1].value; opener.top.frames[1].document.forms[0].elements[2].value = document.forms[0].elements[2].value; |
Dit werkt!
Nu nog ff in een for-lus prakken. Dit liep fout.
Om na te gaan hoe en wat, heb ik dit in de functie ingevuld_en_klaar() gezet:
code:
1
2
3
4
5
| document.write("<p>");
document.write(opener.top.frames[1].document.forms[0].elements.length);
document.write("<p>Test1<p>");
document.write(document.forms[0].elements.length);
document.write("<p>Test2"); |
De windows.close() er uit gehaald om te voorkomen dat het venster sluit.
Dit debug-scriptje blijft hangen of wordt afgebroken. Op het scherm zie ik de output "3 Test1".
Als ik de regel "document.write(document.forms[0].elements.length);" verwijder, dan verschijnt ook Test2.
Het lijkt dus aan die "document.write(document.forms[0].elements.length);" te liggen.
Maar waarom loopt hier het script op mis?
EDIT: De fout lijkt gevonden te zijn. door de eerdere writes, verdwijnt het formulier en zijn de bijbehorende objecten niet meer definieerd.
[ Voor 82% gewijzigd door SvMp op 18-11-2003 01:24 ]