Hallo,
ik ben bezig met het maken van een website met behulp van AJAX. Zit er nu al een tijdje mee te spelen en vind het idiaal dat je direct zonder refresh de gegevens uit de database kan halen. Maar ik stuiter nu op een probleem en kan het zelf niet oplossen.
Ik had wat kennis van javascript, maar dat is zo goed als vergaan:S:). Dus kan het niet zelf op lossen en met zoeken is het tot nu toe nog niet gelukt.
Probleem is dat ik van tevoren moet aangeven welke velden ik gebruik en maar 1 keer kan invullen. Dus als ik een select box maak waar ik een keuze uit kan maken en na een refresh een nieuwe formulier ga invullen wat op dezelfde pagina komt gaat niet omdat in ajax het nog niet aangeven is. Als ik dat wel doe, dus meer elementen ga toevoegen en paar hidden fields maak bij de select gedoe, dan gaat het ook fout, omdat het gezien word als element 2 en 3 en vervolgens niet via form2 en form3 die elementen kan vullen, want die worden dan 4 en 5.
kan iemand mij op weg helpen of kunnen uitleggen hoe het automatisch zal kunnen? Zonder handmatig de elements moeten aan te geven?
------------- ajax script(gaat om de ene laatste laatste regel, waarde form1 en 2 en 3 worden gevuld ,self.xro.send....)
dit is de eerste select box, waar mensen een keuze kan maken, daarna komt een vervolg formulier. Die formulier word via een if naar voren getoverd, zodra form1 ingevuld is komt formulier 2 waar velden form 2 en form3 ingevuld word.
Ik hoop dat het probleem te snappen is:) beetje moeilijk uitleggen.
Maar simpel gezegt, lukt het mij niet om de self.xro.send automatich te laten kijken welke velden er gevuld moeten worden op het moment als het ingevuld is.
ik ben bezig met het maken van een website met behulp van AJAX. Zit er nu al een tijdje mee te spelen en vind het idiaal dat je direct zonder refresh de gegevens uit de database kan halen. Maar ik stuiter nu op een probleem en kan het zelf niet oplossen.
Ik had wat kennis van javascript, maar dat is zo goed als vergaan:S:). Dus kan het niet zelf op lossen en met zoeken is het tot nu toe nog niet gelukt.
Probleem is dat ik van tevoren moet aangeven welke velden ik gebruik en maar 1 keer kan invullen. Dus als ik een select box maak waar ik een keuze uit kan maken en na een refresh een nieuwe formulier ga invullen wat op dezelfde pagina komt gaat niet omdat in ajax het nog niet aangeven is. Als ik dat wel doe, dus meer elementen ga toevoegen en paar hidden fields maak bij de select gedoe, dan gaat het ook fout, omdat het gezien word als element 2 en 3 en vervolgens niet via form2 en form3 die elementen kan vullen, want die worden dan 4 en 5.
kan iemand mij op weg helpen of kunnen uitleggen hoe het automatisch zal kunnen? Zonder handmatig de elements moeten aan te geven?
------------- ajax script(gaat om de ene laatste laatste regel, waarde form1 en 2 en 3 worden gevuld ,self.xro.send....)
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
| <script>
function ajax_call(edit) {
var self = this;
this.stateChange = function() {
if(self.xro.readyState == 4 || self.xro.readyState == "complete") {
//self.handler;
document.getElementById("dit_wordt_strax_via_ajax_geladen").innerHTML = self.xro.responseText;
}
}
this.connect = function() {
if (window.XMLHttpRequest) {
//Mozilla/Gecko
self.xro = new XMLHttpRequest();
self.xro.onload = this.stateChange;
}else if (window.ActiveXObject) {
//Internet Hackplorer
self.xro = new ActiveXObject("Microsoft.XMLHTTP");
self.xro.onreadystatechange = self.stateChange;
}
if(self.xro != null) {
self.xro.open("POST", "machine.php?optie=addmachine&ajax=true&edit="+edit, true);
self.xro.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
self.xro.send("form1="+document.forms[0].elements[0].value+"&form2="+document.forms[0].elements[1].value+"&form3="+document.forms[0].elements[2].value)
}
}
this.connect();
}
</script> |
dit is de eerste select box, waar mensen een keuze kan maken, daarna komt een vervolg formulier. Die formulier word via een if naar voren getoverd, zodra form1 ingevuld is komt formulier 2 waar velden form 2 en form3 ingevuld word.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <select name="form1" onchange="ajax_call()"> <?php if(!empty($_POST[form1])){ $queryselectonid = mysql_query("SELECT projectnr,naam FROM project WHERE projectnr =". $_POST['form1']) or die(mysql_error()); $r = mysql_fetch_array($queryselectonid); echo "<option value=\"$r[projectnr]\">$r[projectnr] | $r[naam]</option>"; while($result = mysql_fetch_array($queryselect)) { echo "<option value=\"$result[projectnr]\">$result[projectnr] | $result[naam]</option>"; } } else{ echo "<option value=\"\">Maak uw keuze</option>"; while($result = mysql_fetch_array($queryselect)) { echo "<option value=\"$result[projectnr]\">$result[projectnr] | $result[naam]</option>"; } } ?> </select> |
Ik hoop dat het probleem te snappen is:) beetje moeilijk uitleggen.
Maar simpel gezegt, lukt het mij niet om de self.xro.send automatich te laten kijken welke velden er gevuld moeten worden op het moment als het ingevuld is.
[ Voor 9% gewijzigd door Mastruberik op 12-06-2006 18:01 ]