Vraag over Ajax
Ik ben bezig met een script in Ajax om live de invoer van een input veld te tonen in een div ernaast. Dit werkt nu perfect het gaat alleen om 90 velden en het 90 x keer zetten van de Javascript lijkt me wat omslachtig. Ik heb al uren geprobeert maar kom er niet uit. Graag jullie hulp.
Ik heb de volgende codes
Ajax
Code (php)
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<script language="javascript">
function createRequestObject() {
var req;
if(window.XMLHttpRequest){
req = new XMLHttpRequest();
} else if(window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
} else {
req = NULL;
alert('Probleem met het aanmaken van hetXMLHttpRequest object');
}
return req;
}
var http = createRequestObject();
function sendRequestKleur(iets) {
http.open('get', 'send.php?kleur='+iets);
http.onreadystatechange = handleResponseKleur;
http.send(null);
}
function handleResponseKleur() {
if(http.readyState == 4 && http.status == 200){
if(http.responseText) {
document.getElementById("huidigekleur").style.backgroundColor = http.responseText;
} else {
document.getElementById("huidigekleur").style.backgroundColor = " ";
}
} else {
document.getElementById("huidigekleur").style.backgroundColor = " ";
}
}
</script>
Html/php Input:
<tr> <td>$naam_kleur1</td><td># <input type=\"text\" name=\"kleur1\" value=\"$kleur1\" maxlength=\"6\" class=\"volgorde\" onkeyup=\"sendRequestKleur(this.value);\" onmouseover=\"sendRequestKleur(this.value);\"/></td>
<td><div style=\"height:20px; width:20px; background-color:#$kleur1; border:1px solid #000000\"></div></td>
</tr>
Show
<span style=\"float:left;\">Huidige Kleur: </span> <div id=\"huidigekleur\" style=\"height:20px; width:20px; background-color:#FFFFFF; border:1px solid #000000; float:left\"></div>
Send.php
<?PHP $kleur = $_REQUEST['kleur']; print"$kleur"; ?>
Nou is het dus de bedoeling dat het output id wordt bepaalt aan de hand vanaf welke input veld de opdracht is gegeven.
Bij invoer in input 1 moet de output naar output 1 en bij input 2 naar output 2
Dit komt er dus op neer dat ik nog een variable moet meesturen in de requeste en deze vervolgens invul bij document.getElementById("huidigekleur")
hopelijk is er iemand die me kan helpen!
function createRequestObject() {
var req;
if(window.XMLHttpRequest){
req = new XMLHttpRequest();
} else if(window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
} else {
req = NULL;
alert('Probleem met het aanmaken van hetXMLHttpRequest object');
}
return req;
}
var http = createRequestObject();
function sendRequestKleur(iets) {
http.open('get', 'send.php?kleur='+iets);
http.onreadystatechange = handleResponseKleur;
http.send(null);
}
function handleResponseKleur() {
if(http.readyState == 4 && http.status == 200){
if(http.responseText) {
document.getElementById("huidigekleur").style.backgroundColor = http.responseText;
} else {
document.getElementById("huidigekleur").style.backgroundColor = " ";
}
} else {
document.getElementById("huidigekleur").style.backgroundColor = " ";
}
}
</script>
Html/php Input:
<tr> <td>$naam_kleur1</td><td># <input type=\"text\" name=\"kleur1\" value=\"$kleur1\" maxlength=\"6\" class=\"volgorde\" onkeyup=\"sendRequestKleur(this.value);\" onmouseover=\"sendRequestKleur(this.value);\"/></td>
<td><div style=\"height:20px; width:20px; background-color:#$kleur1; border:1px solid #000000\"></div></td>
</tr>
Show
<span style=\"float:left;\">Huidige Kleur: </span> <div id=\"huidigekleur\" style=\"height:20px; width:20px; background-color:#FFFFFF; border:1px solid #000000; float:left\"></div>
Send.php
<?PHP $kleur = $_REQUEST['kleur']; print"$kleur"; ?>
Nou is het dus de bedoeling dat het output id wordt bepaalt aan de hand vanaf welke input veld de opdracht is gegeven.
Bij invoer in input 1 moet de output naar output 1 en bij input 2 naar output 2
Dit komt er dus op neer dat ik nog een variable moet meesturen in de requeste en deze vervolgens invul bij document.getElementById("huidigekleur")
hopelijk is er iemand die me kan helpen!
wss wordt het dan iets duidelijker
moet je niet een for-loop hiervoor gebruiken?
ksnap de toepassing niet echt.
Wat moet je met 90 textvelden ?
en tuurlijk moet je dat JS niet 90 keer kopieren. Alles wat je meer dan 1 keer herhaald moet in een functie gestoken worden met eventueel parameters !
Quote:
Hoe zeg je? Er is geen mens die voor zijn lol 90 velden gaat invullen, vergeet het begrip 'succes' dus maar...het gaat alleen om 90 velden
Kun je uitleggen waarom je in hemelsnaam de bezoekers wilt doodgooien met deze ellende en waarom dat niet op een andere (lees: gebruikersvriendelijke) manier kan?
Edit: 90 velden en stel dat je 10 seconden per veld bezig bent (lezen, begrijpen en invullen). Dan heb je 15 minuten nodig om de hele zooi in te vullen! Na 1 of 2 minuten hebben de meeste mensen het echt wel gehad en zijn ze vertrokken.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Ik snap dat ik die functie moet aanroepen met een variable of iets dergelijks. Maar hoe geeft ik deze op en hoe lees ik hem uit.
Werken met ID's natuurlijk dan kan je alles via JS aanpassen.
Mss moet je eerst een basistutje volgen over JS.
Gewijzigd op 01/01/1970 01:00:00 door Crazyme
Quote:
Ik heb liever dat iemand een antwoord geeft waar ik wat aan heb.
Vertaalt dat vrij naar "Ik heb liever iemand die het me voorkauwt"?