abonnement Unibet Coolblue Bitvavo
  donderdag 31 mei 2007 @ 22:18:37 #1
12880 CraZaay
prettig gestoord
pi_49981355


De (voorlopige) OP van de [Javascript] voor dummies reeks.
Hier kan je alle vragen stellen over Javascript en alles wat er mee te maken heeft.

Heb je een probleem, post dan ook even de code waar het probleem zit Zo kunnen we je beter proberen te helpen.

Vorige delen:
[Javascript] voor dummies - Deel 1
[Javascript] voor dummies - Deel 2
[Javascript] voor dummies - deel 3
[Javascript] voor dummies - deel 4
[Javascript] voor dummies deel 5

Handige links:
Quircksmode Javascript
Javascript Cheat Sheet
Mis je een link? Geef even een gil in het topic

Tutorials:
W3Schools Javascript
W3Schools AJAX


Deze OP: http://wiki.fok.nl/index.php/OP/Javascript

[ Bericht 16% gewijzigd door Godtje op 01-06-2007 19:31:41 ]
pi_49993012
Nou ik wordt er echt niet wijzer van, al dat werken met nodes, lengths etc..

Het enige wat ik wil is simpel iets uitlezen maar dat blijkt al verdomde moeilijk te zijn.

Ik heb nu de volgende functie geprobeerd, xmlDoc.getElementsByTagName('layouts') en dan zegt ie dat het een object is, maar nu weet ik niet welke values ik er uit kan halen. childNodes doet nix, length, value, count, etc?

Nu ben ik echt de weg kwijt

1
2
3
var x = xmlDoc.getElementsByTagName('gfxpoll');

alert(x);




Ook met selectNodes kom ik er niet...

1
2
3
var x = xmlDoc.selectNodes("//layouts"); 

alert(x.length);


alert == 0

[ Bericht 14% gewijzigd door Chandler op 01-06-2007 11:40:40 (anyone? :X) ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_49993588
Wat een waardeloze OP
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_49996082
Ik lees net dat de responseXML property in IE pas in versie 7 is toegevoegd. Ik denk dat het makkelijker is om in php de XML te lezen en om te zetten naar JSON en dat dan naar js sturen.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_49997844
Ik begrijp dus dat het niet mogelijk is om XML uit te lezen zonder responseXML te gebruiken in IE6 en FF?

-edit-
Ik heb dat JSON bekeken en zie dat dat eingelijk alleen voor PHP 5.0.2 is sjeez...

[ Bericht 47% gewijzigd door Chandler op 01-06-2007 13:44:07 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50001360
quote:
Op vrijdag 1 juni 2007 10:45 schreef SuperRembo het volgende:
Wat een waardeloze OP
Ja.

http://wiki.fok.nl/index.php/OP/Javascript !! Daar! (overigens ook in voorgaande topics te vinden..)
pi_50004275
quote:
Op vrijdag 1 juni 2007 13:02 schreef Chandler het volgende:
Ik begrijp dus dat het niet mogelijk is om XML uit te lezen zonder responseXML te gebruiken in IE6 en FF?

-edit-
Ik heb dat JSON bekeken en zie dat dat eingelijk alleen voor PHP 5.0.2 is sjeez...
Het kan (zeker in jouw geval) ook wel zonder JSON library.

Het enige wat je in PHP moet doen is

1
2
3
4
5
6
7
8
9
10
<gfxpoll>
    <action>layouts</action>
    <count>4</count>
    <layouts>
        <item>Default</item>
        <item>GFX</item>
        <item>Test</item>
        <item>Woei</item>
    </layouts>
</gfxpoll>

omzetten naar

1{action:'layouts', count:4, layouts:['Default','GFX','Test','Woei']}

en dan in JS:

1var data = eval("(" + request.responseText + ")");





(Wel even opletten met qoutjes in strings enzo)
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_50005119
jeej... ik ga het eens inbouwen maar heb zelf gezocht op problemen met resposeXML in IE6.0 maar kon daar weinig tot niets over vinden (niet dat ik goed in zoeken ben maar goed).

Tnx Sr.
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50005203
quote:
Op vrijdag 1 juni 2007 13:02 schreef Chandler het volgende:
Ik heb dat JSON bekeken en zie dat dat eingelijk alleen voor PHP 5.0.2 is sjeez...
Code for parsing and generating JSON (the latter is also known as "stringifying") is available for the following languages: ActionScript, C, C++, C#, ColdFusion, Common Lisp, Delphi/Object pascal, E, Erlang, Haskell, Java, JavaScript, Lasso (programming language), Limbo, Lua, ML, Objective-C, Objective CAML, Perl, PHP, Python, Rebol, Ruby, Smalltalk and Tcl.

Zie ook JSON.
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_50009194
Klopt maar als je dan de library bekijkt zie je alleen een onderdeel voor php5.0.1 staan en ook een lb voor php 4.3.0 en hoger maar die schijnt weer extreem sloom te zijn vet leuk
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  vrijdag 1 juni 2007 @ 19:20:34 #11
12880 CraZaay
prettig gestoord
pi_50010165
quote:
Op vrijdag 1 juni 2007 14:44 schreef fokME2 het volgende:

[..]

Ja.

http://wiki.fok.nl/index.php/OP/Javascript !! Daar! (overigens ook in voorgaande topics te vinden..)
Good for you (en SuperRembo). En in welke sticky in DIG staat daar een link naartoe?

Veel plezier ermee
pi_50010269
quote:
Op vrijdag 1 juni 2007 19:20 schreef CraZaay het volgende:

[..]

Good for you (en SuperRembo). En in welke sticky in DIG staat daar een link naartoe?

Veel plezier ermee
Stond gewoon in de OP van het vorige deel hoor?

Maar zal wel even een modje roepen dan?
pi_50012569
quote:
Op vrijdag 1 juni 2007 18:50 schreef Chandler het volgende:
Klopt maar als je dan de library bekijkt zie je alleen een onderdeel voor php5.0.1 staan en ook een lb voor php 4.3.0 en hoger maar die schijnt weer extreem sloom te zijn vet leuk
Waarom heb je daar een library voor nodig? . Zo complex is het ook weer niet.
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_50029983
Ik heb de volgende css 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
<style rel="text/css">
<!--
div.example {
   text-align: center;
   padding: 5px;
   background-color: #F4F3EE;
   
   font-family: Arial;
   font-size: 12px;
   color: #000000;
   font-weight: normal;
   font-style: normal;
   text-decoration: none;
}
a.example {
   font-family: Arial;
   font-size: 12px;
   color: #003366;
   font-weight: bold;
   font-style: italic;
   text-decoration: none;
}
a.example:hover {
   font-family: Arial;
   font-size: 12px;
   color: #003366;
   font-weight: bold;
   font-style: italic;
   text-decoration: underline;
}
-->
</style>


en de volgende javascript (in de head):
1
2
3
function changeSize(styleName,sizeValue) {
   document.getElementById(styleName).style.fontSize = sizeValue+'px';
}


en dan heb ik een listmenu met als attribuut:
1onchange="changeSize('example',this.value);"

En een div met id="example"

Wanneer ik dus bijvoorbeeld size 16 kies zal in de voorbeeld div metteen de tekst size 16 krijgen, werkt perfect.
Maar ik zou ook graag de link en de hover met javascript willen veranderen, hoe krijg ik dit voor elkaar?
Ik had al bedacht om gewoon een <a style="" te gebruiken maar in een style kun je geen hover apart aangeven, dus ik ben verplicht met javascript de a.example:hover aan te passen, maar hoe kom ik hierbij?

Iemand een idee?
-
pi_50035446
example a:hover? example a?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  zaterdag 2 juni 2007 @ 17:19:15 #16
12880 CraZaay
prettig gestoord
pi_50035860
In je link-definities (a, a:hover) geen grootte opnemen, die erven ze namelijk gewoon.
pi_50086374
Klein vraagje.

Ik heb een array in javascript

arr[item[1]] = true
arr[item[3]] = true

Hoe kan ik deze items uitlezen? iig niet met een loop waarbij ik de positie probeer aan te spreken, zocht op een foreach maar kon daar ook niets over vinden.. anyone?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50086822
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   <script>
   var arr = new Array();
   var item = new Array();
   
   item[1] = 'x';
   item[3] = 'y';
   arr[item[1]] = 'p';
   arr[item[3]] = 'q';
   
   function test() {
      for( a in arr ) {
        alert( a + '-' + arr[a] );
      }
   }
   </script>
Kan je hier iets mee?
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_50087316
item[1] = leeg, dit is het ID van een TD

als ik nu selected (arr) .length doe krijg ik alsnog 0.

voorbeeld

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<tr id="item[1]" onmouseover="Mover(this, event, 1)" onmouseout="Mover(this, event, 0)"   onclick="Mover(this, event, -1)"  class="item">
    <td>Row 1</td>
    <td>Row 1</td>
    <td>Row 1</td>
    <td>Row 1</td>
    <td>Row 1</td>
</tr>
<tr id="item[2]" onmouseover="Mover(this, event, 1)" onmouseout="Mover(this, event, 0)"   onclick="Mover(this, event, -1)"  class="item">
    <td>Row 2</td>
    <td>Row 2</td>
    <td>Row 2</td>
    <td>Row 2</td>
    <td>Row 2</td>
</tr>


Nu sla ik deze ID van de item op om een item als geselecteerd te zetten.

1selected[id.id] = true


maar nu wil ik bv meerdere items uit selected halen, maar krijg ze niet op het scherm

1
2
3
4
5
6
7
8
9
10
function getSelected()
{
    var str = "";

    for (x in selected)
    {
        str += x + "=" + selected[x] + " -- ";
    }
    alert(selected.length);
}


Uitkomst: 0;

What am i doing wrong?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50087838
Om de een of andere reden pakt hij length niet correct op. Aangezien je toch door alle elementen heen loopt met de for/in constructie is het eenvoudig genoeg om dat zelf te tellen als je wil, maar het zou wel handig zijn.

http://www.xs4all.nl/~litpho/chandlertest.html
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_50089033
Je hebt gelijk Litpho, best raar idd dat ie .length niet pakt...

Nu het volgende, iets anders

Voor het scriptje wil ik nu ook de rechtermuisknop gaan benutten. Echter als ik onmousedown gebruik en gewoon een linker klik doe wordt deze 2x gelezen (door onClick en onmousedown) hoe kan ik voorkomen dat de functie 2x aangeroepen wordt?

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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
13:17 4-6-2007<style>
.item {
    background-color: gray;
    color: black;
}

.item_hover {
    background-color: blue;
    color: yellow;
}

.item_hover {
    background-color: red;
    color: yellow;
}
</style>

<script language="javascript">
var selectedItems;
var selected = new Array();

function Mover(id, event, inout)
{
    // catch mouse buttons
    var mouseButton = false;

    if (event.which == null)
    {
       /* IE case */
       mouseButton = (event.button < 2) ? "left" : ((event.button == 4) ? "middle" :"right");
    }
    else
    {
       /* All others */
       mouseButton = (event.which < 2) ? "left" : ((event.which == 2) ? "middle" : "right");
    }

    // mouseaction?
    if (mouseButton != false && inout == -1)
    {
        tStats("mousebutton found");

        if (mouseButton == "left")
        {
            tStats("left mousebutton");
            // select or deselect item
            if (selected[id.id])
            {
                // verwijder selected[id];
                delete selected[id.id];
            }
            else
            {
                selected[id.id] = id.id
            }
        }
        else
        {
            // menu
            alert("menu on item " + id.id);
        }

        dont(event);
            
    }

    if (inout == 0)
    {
        if (!selected[id.id])
        { 
            id.className = "item";  
        }
        else
        {
            id.className = "item_selected";
        }
    }
    else if (inout == -1)
    {
        tStats("-1");
    }
    else
    {
        id.className = "item_hover";
    }
    mouseButton = false;

}

function dont(event)
{
    if (event.preventDefault)
        event.preventDefault();
    else
        event.returnValue= false;
     return false;
}

function tStats(x)
{
    y = document.getElementById('stats');

    z = x +  '<br />'  + y.innerHTML;
    y.innerHTML = z;
}

function getSelected()
{
    var str = "";
    var cnt = 0;

    for (x in selected)
    {
        str += "Selected option: " + selected[x] + " -- n";
        cnt++;
    }
    alert(cnt + "n" + str);
}
    
</script>

<table>
<tr>
    <th>Cell 1</th>
    <th>Cell 2</th>
    <th>Cell 3</th>
    <th>Cell 4</th>
    <th>Cell 5</th>
</tr>
<tr id="item[1]" onmouseover="Mover(this, event, 1)" onmousedown="Mover(this,event,-1)" onmouseout="Mover(this, event, 0)" onclick="Mover(this, event, -1)" ondblclick="Mover(this, event, -1)" oncontextmenu="Mover(this, event, -1)" class="item">
    <td>Row 1</td>
    <td>Row 1</td>
    <td>Row 1</td>
    <td>Row 1</td>
    <td>Row 1</td>
</tr>
<tr id="item[2]" onmouseover="Mover(this, event, 1)" onmousedown="Mover(this,event,-1)" onmouseout="Mover(this, event, 0)" onclick="Mover(this, event, -1)" ondblclick="Mover(this, event, -1)" oncontextmenu="Mover(this, event, -1)" class="item">
    <td>Row 2</td>
    <td>Row 2</td>
    <td>Row 2</td>
    <td>Row 2</td>
    <td>Row 2</td>
</tr>
<tr id="item[3]" onmouseover="Mover(this, event, 1)" onmousedown="Mover(this,event,-1)" onmouseout="Mover(this, event, 0)" onclick="Mover(this, event, -1)" ondblclick="Mover(this, event, -1)" oncontextmenu="Mover(this, event, -1)" class="item">
    <td>Row 3</td>
    <td>Row 3</td>
    <td>Row 3</td>
    <td>Row 3</td>
    <td>Row 3</td>
</tr>
<tr id="item[4]" onmouseover="Mover(this, event, 1)" onmousedown="Mover(this,event,-1)" onmouseout="Mover(this, event, 0)" onclick="Mover(this, event, -1)" ondblclick="Mover(this, event, -1)" oncontextmenu="Mover(this, event, -1)" class="item">
    <td>Row 4</td>
    <td>Row 4</td>
    <td>Row 4</td>
    <td>Row 4</td>
    <td>Row 4</td>
</tr>
<tr id="item[5]" onmouseover="Mover(this, event, 1)" onmousedown="Mover(this,event,-1)" onmouseout="Mover(this, event, 0)" onclick="Mover(this, event, -1)" ondblclick="Mover(this, event, -1)" oncontextmenu="Mover(this, event, -1)" class="item">
    <td>Row 5</td>
    <td>Row 5</td>
    <td>Row 5</td>
    <td>Row 5</td>
    <td>Row 5</td>
</tr>
<tr id="item[6]" onmouseover="Mover(this, event, 1)" onmousedown="Mover(this,event,-1)" onmouseout="Mover(this, event, 0)" onclick="Mover(this, event, -1)" ondblclick="Mover(this, event, -1)" oncontextmenu="Mover(this, event, -1)" class="item">
    <td>Row 6</td>
    <td>Row 6</td>
    <td>Row 6</td>
    <td>Row 6</td>
    <td>Row 6</td>
</tr>
<tr id="item[7]" onmouseover="Mover(this, event, 1)" onmousedown="Mover(this,event,-1)" onmouseout="Mover(this, event, 0)" onclick="Mover(this, event, -1)" ondblclick="Mover(this, event, -1)" oncontextmenu="Mover(this, event, -1)" class="item">
    <td>Row 7</td>
    <td>Row 7</td>
    <td>Row 7</td>
    <td>Row 7</td>
    <td>Row 7</td>
</tr>
<tr id="item[8]" onmouseover="Mover(this, event, 1)" onmousedown="Mover(this,event,-1)" onmouseout="Mover(this, event, 0)" onclick="Mover(this, event, -1)" ondblclick="Mover(this, event, -1)" oncontextmenu="Mover(this, event, -1)" class="item">
    <td>Row 8</td>
    <td>Row 8</td>
    <td>Row 8</td>
    <td>Row 8</td>
    <td>Row 8</td>
</tr>
</table>

<input type="button" onClick="getSelected()" value="Selected items"> <input type="button" onClick="document.getElementById('stats').innerHTML = ''" value="Clear pre">

<pre id="stats" name="stats"  style="width: 400px; height: 250px; overflow: auto;">Hello</pre>


als ik nu onmousedown verwijder werkt de rechtermuisknop niet. Heeft iemand een suggestie?

[ Bericht 99% gewijzigd door Chandler op 04-06-2007 13:19:41 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50204582
Kleine andere vraag.

Stel ik heb een element een andere className gegeven (this.className = 'nieuweclass') hoe kan ik deze nieuwe class dan resetten? oftewel de oude class terug halen? zonder een andere class te gebruiken?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50204758
quote:
Op donderdag 7 juni 2007 15:56 schreef Chandler het volgende:
Kleine andere vraag.

Stel ik heb een element een andere className gegeven (this.className = 'nieuweclass') hoe kan ik deze nieuwe class dan resetten? oftewel de oude class terug halen? zonder een andere class te gebruiken?
Tussendoor ergens in een variabele opslaan of de pagina herladen.
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_50204945
Je moet het zien als.

Ik heb een TD daar staat een standaard class op

td { font-size: 100px }

nu heb ik ook een class

td .small { font-size: 12px; }

als ik nu met een onmouseover="this.className='small'" zet wil ik met onmouseout de class resetten naar de huidige class (td). How do i do this?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50204991
quote:
Op donderdag 7 juni 2007 16:07 schreef Chandler het volgende:
Je moet het zien als.

Ik heb een TD daar staat een standaard class op

td { font-size: 100px }

nu heb ik ook een class

td .small { font-size: 12px; }

als ik nu met een onmouseover="this.className='small'" zet wil ik met onmouseout de class resetten naar de huidige class (td). How do i do this?
De huidige class is niet td, de huidige class is leeg met element td. Dus als je className leeg maakt, dan gebruikt hij de 100px rule weer, dat is dan de meest passende.
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_50205093
ok, i'll try.

En het werkte gewoon dus heerlijk this.className = '' (reset)

[ Bericht 87% gewijzigd door Chandler op 07-06-2007 16:25:19 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50314747
Mijn pagina heeft een lege img, die ik om de zeven seconden met de volgende truuk vul:

1scrollerimage.src = images[number];


...waarbij images[number] een relatief URL bevat. De eerste keer dat ik dit aanroep gaat het prima, het plaatje laad, met het juiste formaat. Als ik voor de tweede keer het plaatje laad, gaat dit ook goed, echter neemt hij het formaat van het eerste plaatje aan.

Ik heb zitten te klooien met een compleet leegmaken van het image, de width en height null te geven, en desnoods een nieuwe Image-object aan te maken. Allemaal gefaalde oplossingen, dus ik vroeg mij af of iemand tips voor mij heeft?

En nee, de div waar het plaatje in zit leegmaken en via innerHTML weer vullen met "<img id="scrollerimage">" vind ik ietwat ranzig :P
  maandag 11 juni 2007 @ 09:13:52 #28
12880 CraZaay
prettig gestoord
pi_50321202
Dat laatste is inderdaad ranzig, goed dat je dat niet ziet zitten

Ik weet eigenlijk niet of dit standaard browsergedrag is. Heb je er last van in meerdere browsers? Wat sowieso zou moeten werken is het expliciet zetten van de width en height d.m.v. CSS, maar je zou denken dat het gewoon zou moeten werken op de door jou genoemde manier.

Zal vanavond eens een testcase maken
pi_50321307
Ik moet bekennen dat ik het enkel in Safari getest heb, maar ook als het in Firefox wel zou werken, ik ga liever geen grote doelgroep afsnijden.

De width en height instellen gaat tricky worden, aangezien elk plaatje een andere grote heeft, en ik geen flauw idee heb hoe groot of klein het plaatje is.

Hier heb ik een testcase gemaakt, en daar werkt wel alles naar toebehoren. Zeer vreemd gedrag
  maandag 11 juni 2007 @ 14:07:00 #30
12880 CraZaay
prettig gestoord
pi_50330713
Werkt iig naar behoren in Firefox op de PC en Mac, IE7 en Safari. In de site waar het mis gaat is er geen CSS style die de afmetingen aanpast ofzo?
pi_50331183
Dan schuif ik de fout toch naar mijn eigen website. Op het moment kan ik er niet aan werken, maar ik hou je deze avond op de hoogte
pi_50385870
quote:
Op maandag 11 juni 2007 14:19 schreef Geqxon het volgende:
Dan schuif ik de fout toch naar mijn eigen website. Op het moment kan ik er niet aan werken, maar ik hou je deze avond op de hoogte
Iets later. Vreemd, alles werkt weer. Maar dit snap ik dan weer niet:

En dat snap ik weer niet....

[ Bericht 43% gewijzigd door Geqxon op 12-06-2007 20:54:18 ]
pi_50642372
Ik heb voor het eerst zelf een tabel in javascript kunnen gereneren! _O_

maar nu zit ik met een probleem. Ik wil eingelijk ook een tbody, tfoot en thead toevoegen.. echter krijg ik het niet voor elkaar..

Het huidige werkende script

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
<div id="test">
<!-- tabel //-->
</div>

<script language="javascript">

function addCell(tableRow, pos, text, width)
{
    var tableCell             = tableRow.insertCell(pos);
        tableCell.innerHTML   = text ;
        tableCell.style.width = width;
    
}

table = document.createElement("Table");

for (x = 0; x < 10; x++)
{
    var tableRow = table.insertRow(x);

    addCell(tableRow, 0, x + "&1", "100px");
    addCell(tableRow, 1, x + "&2", "200px");
    addCell(tableRow, 2, x + "&3", "50px");
    addCell(tableRow, 3, x + "&4", "200px");

/*
    for (y = 0; y < 5; y++)
    {
        var tableCell = tableRow.insertCell(y);
            tableCell.innerHTML = x +'hello'+y ;

    }
*/
}

document.getElementById('test').appendChild(table);
alert('klik hier en de tabel verdwijnt!');
document.getElementById('test').innerHTML = '';

</script>


Wie weet hoe ik een element kan toevoegen? want table.createElement("Tbody"); werkt niet en zie / kon geen andere oplossing vinden...
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50643250
table.createTFoot() en table.createTHead()

en uiteraard
var tbody = document.createElement("tbody");
table.appendChild(tbody);
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_50644330
Ik heb je code even overgenomen, maar krijg een thead niet voor elkaar... tbody is trouwens gelukt!

1
2
3
4
var thead = table.createTHead();
var theadRow  = thead.insertRow(0);
var theadHeader = thead.createElement("th");
    theadHeader.innerHTML = 'Header';


Bovenstaande code werkt niet. Ook insertCell geeft een fout. Wil gewoon een TH toevoegen aan de thead en daarin een stuk tekst plaatsen

volgende code werkt!
1
2
var tbody = document.createElement("tbody");
table.appendChild(tbody);


Tevens zou ik graag weten hoe ik een ID waarde kan plaatsen aan een TR of TD oid...

[ Bericht 8% gewijzigd door Chandler op 20-06-2007 11:10:40 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50644481
quote:
Op woensdag 20 juni 2007 10:28 schreef Chandler het volgende:
Ik heb je code even overgenomen, maar krijg een thead niet voor elkaar... tbody is trouwens gelukt!
[ code verwijderd ]

Bovenstaande code werkt niet. Ook insertCell geeft een fout. Wil gewoon een TH toevoegen aan de thead en daarin een stuk tekst plaatsen
1
2
3
4
5
var thead = table.createTHead();
var theadRow  = thead.insertRow(0);
var theadHeader = document.createElement("th");
    theadHeader.innerHTML = 'Header';
   theadRow.appendChild(theadHeader);

createElement is geen methode van HTMLTableRowElement en HTMLTableRowElement.insertCell levert alleen <TD> elementen op .
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_50650149
Inderdaad Litpho, klopt helemaal. Had het net ook even doorgelezen

Nu even iets anders, iets waar denk ik wel meerdere gebruikers mee zouden kunnen zitten.

Ik heb dus een scriptje met een tabel, deze tabel heeft een mouseover en een onclick om een row te selecteren, echter wil ik met een double click deze regel bewerken.

Nu is het probleem dat doubleclick niet functioneerd omdat eerst de onclick aangeroepen wordt.

Is er een manier om doubleclick en de enkele click af te vangen, zodat je tijd hebt om een dubbele klik te doen ipv gelijk de onclick aan te roepen? als je begrijpt wat ik bedoel!?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50650751
Quirksmode.org:
quote:
The dblclick event is rarely used. Even when you use it, you should be sure never to register both an onclick and an ondblclick event handler on the same HTML element. Finding out what the user has actually done is nearly impossible if you register both.
Ik zou een andere oplossing zoeken. Een edit knopje is toch ook veel duidelijker?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_50650799
Klopt.

Dan ga ik maar linker en rechtermuisknop misbruiken

Tevens kom ik iets merkwaardigs tegen in IE 6.

1
2
3
4
        tableRow.oncontextmenu = eval("function() { alert('menu for: ' + this.id);  }");
        tableRow.onclick       = eval("function() { alert('select'); }");
        tableRow.onmouseover   = eval("function() { this.className='item_hover'; }");
        tableRow.onmouseout    = eval("function() { this.className=''; }");


dit werkt perfect in Firefox maar niet in IE?! en ijk snap niet waarom!

[ Bericht 40% gewijzigd door Chandler op 20-06-2007 13:31:57 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50659306
1
2
3
span = document.createElement('span');
span_text = document.createTextNode(' & gt;& gt; ' + title);
span.appendChild(span_text);

Waarom krijg ik dan ook letterlijk '& gt;' te zien en geen >?

(ik heb er even '& gt;' van gemaakt met spatie, anders maakt Fok! er > van )
pi_50659525
createtextNode creeert een textnode en die kan geen HTMLcode bevatten maar enkel normale text ...

om die grond wordt dat stukje Text ook geparsed naar de HTML-code '&amp;gt;'
"Whatever you feel like: Life’s not one color, nor are you my only reader" - Ausonius, Epigrammata 25
pi_50661862
Aha, gewoon >> neer zetten dus
(Had ik zelf ook kunnen zien door de generated source te bekijken btw.)
pi_50662573
quote:
Op woensdag 20 juni 2007 17:36 schreef RM-rf het volgende:
createTextNode creeert een textnode
He, wat zitten die rot-browsers toch onlogisch in elkaar
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_50663861
Inderdaad, dat stuk snapte ik ook niet echt.
pi_50672771
Snapt iemand waarom ik geen EVAL kan gebruiken in IE in de vorige post van mij? ik heb gezocht maar kan het echt niet vinden in FireFox werkt het gewoon.

IE meld trouwens dat het niet geimplementeerd is oid..
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50678843
Is een setTimeOut niet wat voor je? Kan basicly hetzelfde als je de timer op 0 zet...
pi_50681139
ik ben er zelf achtergekomen! komt omdat me vrienden hier niet reageren

ik had helemaal geen eval nodig, een functie kun je dus gewoon plaatsen aan een onclick ed zonder eval!

Tnx Geqxon voor je antwoorden
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50684402
Dat kan inderdaad ook
pi_50686386
Wil iemand wat voor mij checken, want als scripter kijk je vaak over foutjes heen.

Omschrijving
CHMOD Calculator die ook in te stellen is met CHMOD code zelf (666 etc)

Waarom gemaakt?
omdat veel online versies niet directe input ondersteunden, oftewel invoer van 555, 666, 777 ipv checken van checkboxjes

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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<table>
<tr>
    <td colspan=5>Rechten caculator gemaakt door Eric!</td>
</tr>
<tr>
    <td>Rechten</td>
    <td>Eigenaar</td>
    <td>Groep</td>
    <td>Anders</td>
    <td> </td>
</tr>
<tr>
    <td>Lezen</td>
    <td><input type="checkbox" id="owner_read" onClick="calculate(this, 4);"></td>
    <td><input type="checkbox" id="group_read" onClick="calculate(this, 4);"></td>
    <td><input type="checkbox" id="other_read" onClick="calculate(this, 4);"></td>
    <td> </td>
</tr>
<tr>
    <td>Schrijven</td>
    <td><input type="checkbox" id="owner_write" onClick="calculate(this, 2);"></td>
    <td><input type="checkbox" id="group_write" onClick="calculate(this, 2);"></td>
    <td><input type="checkbox" id="other_write" onClick="calculate(this, 2);"></td>
    <td> </td>
</tr>
<tr>
    <td>Uitvoeren</td>
    <td><input type="checkbox" id="owner_exec" onClick="calculate(this, 1);"></td>
    <td><input type="checkbox" id="group_exec" onClick="calculate(this, 1);"></td>
    <td><input type="checkbox" id="other_exec" onClick="calculate(this, 1);"></td>
    <td> </td>
</tr>
<tr>
    <td>Nummeriek</td>
    <td><input type="text" id="num_owner_total" style="width: 15px;" disabled></td>
    <td><input type="text" id="num_group_total" style="width: 15px;" disabled></td>
    <td><input type="text" id="num_other_total" style="width: 15px;" disabled></td>
    <td>= <input type="text" name="chmod_oct" id="chmod_oct" style="width: 75px;" onKeyUp="setRights(this.value);"></td>
</tr>
<tr>
    <td>Symbolisch</td>
    <td><input type="text" id="sym_owner_total" style="width: 35px;" disabled></td>
    <td><input type="text" id="sym_group_total" style="width: 35px;" disabled></td>
    <td><input type="text" id="sym_other_total" style="width: 35px;" disabled></td>
    <td>= <input type="text" name="chmod_sym" id="chmod_sym" style="width: 75px;" disabled></td>
</tr>
</table>

<script language="javascript">
var owner = 0;
var group = 0;
var other = 0;

function calculate(id, num)
{
    var opt = document.getElementById(id.id);

    if (opt.checked == true)
    {
        switch (opt.id.substr(0, 5))
        {
            case "owner":
                owner = owner + num;
            break;

            case "group":
                group = group + num;
            break;

            case "other":
                other = other + num;
            break;
        }
    }
    else
    {
        switch (opt.id.substr(0, 5))
        {
            case "owner":
                owner = owner - num;
            break;

            case "group":
                group = group - num;
            break;

            case "other":
                other = other - num;
            break;
        }
    }

    displayNumbers(owner, group, other);

}
function setRights(inn)
{
    if (parseFloat(inn.substr(0, 1)) > 7 || parseFloat(inn.substr(1, 1)) > 7 || parseFloat(inn.substr(2, 1)) > 7 )
    {
         alert("Alle nummers moeten 7 of lager zijn!");
    }
    else if (inn.length > 3)
    {
         alert("Het nummer mag niet meer dan 3 cijfers bevatten");
    }

    if (inn.substr(0, 1)) { owner = parseFloat(inn.substr(0, 1)); } else { owner = 0; }
    if (inn.substr(1, 1)) { group = parseFloat(inn.substr(1, 1)); } else { group = 0; }
    if (inn.substr(2, 1)) { other = parseFloat(inn.substr(2, 1)); } else { other = 0; }

    
    if (owner & 4) { document.getElementById('owner_read').checked  = true; } else { document.getElementById('owner_read').checked  = false; }
    if (owner & 2) { document.getElementById('owner_write').checked = true; } else { document.getElementById('owner_write').checked = false; }
    if (owner & 1) { document.getElementById('owner_exec').checked  = true; } else { document.getElementById('owner_exec').checked  = false; }

    if (group & 4) { document.getElementById('group_read').checked  = true; } else { document.getElementById('group_read').checked  = false; }
    if (group & 2) { document.getElementById('group_write').checked = true; } else { document.getElementById('group_write').checked = false; }
    if (group & 1) { document.getElementById('group_exec').checked  = true; } else { document.getElementById('group_exec').checked  = false; }

    if (other & 4) { document.getElementById('other_read').checked  = true; } else { document.getElementById('other_read').checked  = false; }
    if (other & 2) { document.getElementById('other_write').checked = true; } else { document.getElementById('other_write').checked = false; }
    if (other & 1) { document.getElementById('other_exec').checked  = true; } else { document.getElementById('other_exec').checked  = false; }

    displayNumbers(owner, group, other);

}

function displayNumbers(owner, group, other)
{
    // nummeric
    document.getElementById('chmod_oct').value = owner + "" + (group > 0 ? group : "") + "" + (other > 0 ? other : "");

    document.getElementById('num_owner_total').value = owner;
    document.getElementById('num_group_total').value = group;
    document.getElementById('num_other_total').value = other;

    // symbolic
    
    document.getElementById('sym_owner_total').value = convertToSym(owner);
    document.getElementById('sym_group_total').value = convertToSym(group);
    document.getElementById('sym_other_total').value = convertToSym(other);

    document.getElementById("chmod_sym").value = "-" + convertToSym(owner) + convertToSym(group) + convertToSym(other); 

}

function convertToSym(num)
{
    var out = "";

    if (num & 4) { out += "r"; } else { out += "-"; }
    if (num & 2) { out += "w"; } else { out += "-"; }
    if (num & 1) { out += "x"; } else { out += "-"; }

    return out;
}

setRights('666');
</script>
         


misschien kan het korter, dat zou ik graag willen horen!

-edit- kleine bug verholpen.

[ Bericht 3% gewijzigd door Chandler op 21-06-2007 12:06:17 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  donderdag 21 juni 2007 @ 12:42:00 #50
12880 CraZaay
prettig gestoord
pi_50687696
Eenmalig document.getElementById doen voor al die elementen, en dan de referenties hiernaar in een variabele buiten de functie opslaan (en die vervolgens gebruiken). Beetje onnodige belasting om de browser iedere keer de DOM te laten doorzoeken naar hetzelfde element, terwijl 1 keer genoeg is
pi_50688535
1
2
3
4
5
6
7
8
9
10
11
    if (owner & 4) { document.getElementById('owner_read').checked  = true; } else { document.getElementById('owner_read').checked  = false; }
    if (owner & 2) { document.getElementById('owner_write').checked = true; } else { document.getElementById('owner_write').checked = false; }
    if (owner & 1) { document.getElementById('owner_exec').checked  = true; } else { document.getElementById('owner_exec').checked  = false; }

    if (group & 4) { document.getElementById('group_read').checked  = true; } else { document.getElementById('group_read').checked  = false; }
    if (group & 2) { document.getElementById('group_write').checked = true; } else { document.getElementById('group_write').checked = false; }
    if (group & 1) { document.getElementById('group_exec').checked  = true; } else { document.getElementById('group_exec').checked  = false; }

    if (other & 4) { document.getElementById('other_read').checked  = true; } else { document.getElementById('other_read').checked  = false; }
    if (other & 2) { document.getElementById('other_write').checked = true; } else { document.getElementById('other_write').checked = false; }
    if (other & 1) { document.getElementById('other_exec').checked  = true; } else { document.getElementById('other_exec').checked  = false; }


Dit in een functie proppen? De 4 - 2 - 1 stap kan eventueel in een for-lusje

1
2
3
4
5
6
7
8
9
10
11
12
13
var objectToCheck = array(5);

checkboxName = "group"
objectToCheck[4] = document.getElementById(checkboxName+'_read').checked;
objectToCheck[2] = document.getElementById(checkboxName+'_write').checked;
objectToCheck[1] = document.getElementById(checkboxName+'_exec').checked;


for (var i = 4; i >= 1; i = i / 2){

    if (right & i) { objectToCheck[i] = true; } else { objectToCheck[i] = false; }

}


[ Bericht 5% gewijzigd door Geqxon op 21-06-2007 13:18:15 ]
pi_50689282
Uitgewerkt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
   var types = new Array();
   types[0] = "owner";
   types[1] = "group";
   types[2] = "other";

   var userset = new Array();
   userset[0] = 5;
   userset[1] = 7;
   userset[2] = 1;

   var rights = new Array();
   rights[4] = "read";
   rights[2] = "write";
   rights[1] = "exec";

   for (var i = 0; i <= 2; i++){
      for (var j = 4; j >= 1; j = j / 2){
          if (userset[i] & j)
             document.getElementById(types[i]+'_'+rights[j]).checked  = true;
          else
             document.getElementById(types[i]+'_'+rights[j]).checked  = false;
      }
   }


Verder lijkt dit mij mooier voor de checkboxen:

1
2
3
4
5
6
<input type="checkbox" id="other_read" value="4" onClick="calculate(this)">

function calculate(checkbox)
{
    var opt = checkbox.id;
    var num = checkbox.value;


Puur uit netheid

Last but not least een ranzige methode om calculate te verkleinen:

1
2
3
4
5
6
7
8
9
10
   var owner = 7;

   var checkboxChecked = false
   var checkboxValue = 4;
   var checkboxName = "owner";
   var charToUse = (checkboxChecked ? true : "+") + (checkboxChecked ? false : "-");

   eval(checkboxName + " = " + checkboxName + " " + charToUse + " " + checkboxValue);

   alert(owner);


Geeft in dit geval dus drie. Maar ranzig

[ Bericht 12% gewijzigd door Geqxon op 21-06-2007 13:56:01 ]
pi_50690574
Tnx, ik ga me hier eens over buigen, maar op zich waren de functies die ik geschreven had aardig goed dus en dat voor een JS leek
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50691053
quote:
Op donderdag 21 juni 2007 14:06 schreef Chandler het volgende:
Tnx, ik ga me hier eens over buigen, maar op zich waren de functies die ik geschreven had aardig goed dus en dat voor een JS leek
Jep, die waren prima. Maar hey, jij vraagt om korter, dan krijg je korter
pi_50693886
je hebt gelijk... heb nog een hoop te javascripten.. het is maar onderdeel van
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50695341
Dit kan natuurlijk veel korter

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var types = new Array();
types[0] = "owner";
types[1] = "group";
types[2] = "other";

var userset = new Array();
userset[0] = 5;
userset[1] = 7;
userset[2] = 1;

var rights = new Array();
rights[4] = "read";
rights[2] = "write";
rights[1] = "exec";

for (var i = 0; i <= 2; i++){
   for (var j = 4; j >= 1; j = j / 2){
       if (userset[i] & j)
          document.getElementById(types[i]+'_'+rights[j]).checked  = true;
       else
          document.getElementById(types[i]+'_'+rights[j]).checked  = false;
   }
}


Voor het stukje met

1if (boolValue) { someVar = true; } else { someVar = false; };

is er omslachtig


1
2
3
4
5
6
7
8
9
10
11
var types = ["owner", "group", "other"];
var userset = [5 , 7, 1];
var rights = ["read", "write", "exec"];

for (var i = 0; i < 3; ++i)
{
   for (var j = 4; j >= 1; j /= 2)
   {
      document.getElementById(types[i] + '_' + rights[j]).checked = (userset[i] & j);
   }
}   


:P
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_50695671
Baas boven baas, verschil moet er zijn

En de "checked = (userset[i] & j)" is een hele scherpe, voor mij een gemiste kans
  donderdag 21 juni 2007 @ 17:17:34 #58
12880 CraZaay
prettig gestoord
pi_50697543
SuperRembo: ik neem aan dat 'ie voor 'rights' niet voor niets 4, 2 en 1 als keys gebruikt heeft ipv 0, 1 en 2. Of mis ik iets?
pi_50697776
quote:
Op donderdag 21 juni 2007 17:17 schreef CraZaay het volgende:
SuperRembo: ik neem aan dat 'ie voor 'rights' niet voor niets 4, 2 en 1 als keys gebruikt heeft ipv 0, 1 en 2. Of mis ik iets?
Jep, zo moet er bij een "read" worden geprobeerd er vier punten af te halen. Dat is anders te doen, uiteraard, maar dit leek mij voor het overzicht wel handig
pi_50702506
quote:
Op donderdag 21 juni 2007 17:17 schreef CraZaay het volgende:
SuperRembo: ik neem aan dat 'ie voor 'rights' niet voor niets 4, 2 en 1 als keys gebruikt heeft ipv 0, 1 en 2. Of mis ik iets?
Je hebt gelijk, daar heb ik overheen gekeken.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_50702804
Voor de mensen die graag op een makkelijk manier ronde hoeken willen maken:
http://code.google.com/p/jquery-roundcorners-canvas/
..///
  donderdag 21 juni 2007 @ 20:29:55 #62
136730 PiRANiA
All thinking men are atheists.
pi_50703409
stiekem plaats ik hier een tvp
  donderdag 21 juni 2007 @ 21:28:59 #63
12880 CraZaay
prettig gestoord
pi_50705665
quote:
Op donderdag 21 juni 2007 20:15 schreef wipes66 het volgende:
Voor de mensen die graag op een makkelijk manier ronde hoeken willen maken:
http://code.google.com/p/jquery-roundcorners-canvas/
Bah

Javascript is wat mij betreft voor gedrag en niet voor styling. Daar is CSS voor.
pi_50710533
quote:
Op donderdag 21 juni 2007 21:28 schreef CraZaay het volgende:

[..]

Bah

Javascript is wat mij betreft voor gedrag en niet voor styling. Daar is CSS voor.
Sommige dingen gaan nou eenmaal niet met CSS.
..///
  vrijdag 22 juni 2007 @ 00:02:05 #65
12880 CraZaay
prettig gestoord
pi_50712640
quote:
Op donderdag 21 juni 2007 23:20 schreef wipes66 het volgende:

[..]

Sommige dingen gaan nou eenmaal niet met CSS.
Tuurlijk wel. jQuery schrijft ook gewoon dynamisch HTML en CSS.
  vrijdag 22 juni 2007 @ 19:40:34 #66
136730 PiRANiA
All thinking men are atheists.
pi_50739313
help?

ik wil dat in een <input> de enter toets neit gebruikt wordt om te submitten, maar om een functie uit te voeren.
Hoe moet dat?

zoiets dus: ipuur ter illustratie:

1
2
3
<form>
<input onKeyUp="if(key= enter { submitajax(this.value) ; } "> 
</form>
  vrijdag 22 juni 2007 @ 19:59:10 #67
12880 CraZaay
prettig gestoord
pi_50740043
Niets aan die input doen maar een onsubmit op je form. Daarin de gewenste functie uitvoeren en een 'return false' om de normale submit tegen te houden.

En natuurlijk de normale submit ook laten werken voor de mensen die javascript uit hebben staan
  vrijdag 22 juni 2007 @ 20:20:15 #68
136730 PiRANiA
All thinking men are atheists.
pi_50740837
quote:
Op vrijdag 22 juni 2007 19:59 schreef CraZaay het volgende:
Niets aan die input doen maar een onsubmit op je form. Daarin de gewenste functie uitvoeren en een 'return false' om de normale submit tegen te houden.

En natuurlijk de normale submit ook laten werken voor de mensen die javascript uit hebben staan
gaan we proberen
pi_50798120
Ik ben zo eens op zoek naar een toffe Javascript reverse-engineer debugger achtig programma. Dus zodat ik exact kan zien wat er gebeurd als ik op een pagina op een knopje klik. Iemand tips?
pi_50802784
In FireBug zit een debugger en nog een heleboel handige dev tools. Verder heb je voor Firefox nog Venkman, maar die vind ik zelf niet zo lekker werken. Voor IE heb je natuurlijk de debugger van de Microsoft Script Editor, of anders Visual Studio.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_50912943
Vraagje; ik heb een selectbox met een stel opties. Waarvan 90% een value hebben en 10% niet. Nu wil ik dat alleen die opties met een value geselecteerd kunnen worden maar niet de opties zonder 'value'.

Hoe kan ik dit realiseren?

if (this.option[this.selectedIndex].value='') return false;

werkt helaas niet
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50913501
quote:
Op woensdag 27 juni 2007 20:40 schreef Chandler het volgende:
Vraagje; ik heb een selectbox met een stel opties. Waarvan 90% een value hebben en 10% niet. Nu wil ik dat alleen die opties met een value geselecteerd kunnen worden maar niet de opties zonder 'value'.

Hoe kan ik dit realiseren?

if (this.option[this.selectedIndex].value='') return false;

werkt helaas niet :{
1
2
3
if (item.value){
alert('This item has a value');
}


Werkt dit niet?
pi_50939010
Dat werkt wel in IE maar weer niet in FireFox.

Wil eingelijk gewoon als ze op een 'optie' zonder value klikken dat de 'selectie' gewoon blijft staan op de 'vorige' optie met wel een value...

oid..
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50939134
Tijdelijke variabele om de selectedIndex in op te slaan waar de selectedIndex naar wordt teruggezet als het gegeven item geen value heeft?
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_50939232
K! ik ga het proberen!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  donderdag 28 juni 2007 @ 15:06:13 #76
12880 CraZaay
prettig gestoord
pi_50939242
Wat is het doel Chandler? Ben je niet goed af met <optgroup> toevallig?
pi_50939305
quote:
Op donderdag 28 juni 2007 15:06 schreef CraZaay het volgende:
Wat is het doel Chandler? Ben je niet goed af met <optgroup> toevallig?
Goed punt.
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_50939813
<optgroup>?

Nog nooit van gehoord, ga gelijk googlen!

-edit-

Gevonden en nu al ingebouwd cq gebruikt!.

Wat een handig element zeg!. Tnx CraAzAaaaaaaaaaaaaaaaay!

[ Bericht 50% gewijzigd door Chandler op 28-06-2007 15:30:05 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50940994
Maakt dit qua preformance wat uit of niet?

1
2
3
4
5
6
7
8
var count_items = menu_items.length;
for(var i = 0; i < count_items; i++) {
   // doe iets tofs.
}

for(var i = 0; i < menu_items.length; i++) {
   // doe iets tofs.
}
pi_50941029
klopt het trouwens dat hier posts zijn verdwenen?
pi_50941408
geen idee hehe.

Maar denk dat het wel wat uitmaakt, in PHP iig wel

De parser moet anders constant lezen hoeveel items er in een bepaalde array zitten en dat hoeft de parser niet te doen als jij die gegevens in een tijdelijke variabel zet!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_50941956
In PHP is dat waar inderdaad (lees ik net op php.net) Dus lijkt het me voor Javascript ook, hoewel ik het nergens kan vinden.

In dit geval maakt het niet zo heel erg veel uit, het gaat om array die bestaat uit wel 4 elementen
pi_50942467
quote:
Op donderdag 28 juni 2007 16:01 schreef super-muffin het volgende:
Maakt dit qua preformance wat uit of niet?
[ code verwijderd ]
Ja dat maakt zeker uit.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// normaal
for (var i = 0; i < a.length; i++) 
{
   Foo(a[i]);
}
// sneller
for (var i = 0, l = a.length; i < l; ++i) 
{
   Foo(a[i]);
}
// nog sneller (maar in omgekeerde volgorde)
var i = a.length;
while (i--)
{
   Foo(a[i]);
}


De laatste versie is het snelst, maar die is wat minder duidelijk, dus die zou ik alleen gebruiken als de snelheid heel belangrijk is.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_50944315
quote:
Op donderdag 28 juni 2007 16:48 schreef SuperRembo het volgende:

[..]

Ja dat maakt zeker uit.
[ code verwijderd ]

De laatste versie is het snelst, maar die is wat minder duidelijk, dus die zou ik alleen gebruiken als de snelheid heel belangrijk is.
Die laatste is toch simpel te gebruiken (ook andersom)

1
2
3
4
5
6
7
var i = a.length;
var j = 0;
while (i--)
{
    j++;
   Foo(a[j]);
}


:)

2 regels meer maar qua preformance even snel volgens mij...
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  donderdag 28 juni 2007 @ 19:20:56 #85
12880 CraZaay
prettig gestoord
pi_50947204
quote:
Op donderdag 28 juni 2007 16:48 schreef SuperRembo het volgende:

De laatste versie is het snelst, maar die is wat minder duidelijk, dus die zou ik alleen gebruiken als de snelheid heel belangrijk is.
Goed die laatste! Ga ik meteen inbouwen in m'n project waarbij 500 objecten in een array gestopt moeten worden in een loop
pi_50950087
Wat voor objecten?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  donderdag 28 juni 2007 @ 21:00:39 #87
12880 CraZaay
prettig gestoord
pi_50950410
Google Maps markers, infowindow's en nog wat spul.
pi_50980534
quote:
Op donderdag 28 juni 2007 16:15 schreef Chandler het volgende:
geen idee hehe.

Maar denk dat het wel wat uitmaakt, in PHP iig wel

De parser moet anders constant lezen hoeveel items er in een bepaalde array zitten en dat hoeft de parser niet te doen als jij die gegevens in een tijdelijke variabel zet!
Maar is dat dan niet dynamisch? Als ik "a = document.getElementById('hi').length" pak, dan krijg ik toch elke keer als ik naar "a" vraag de dan geldende lengte van "hi" ? Of slaat hij deze waarde enkel 1 maal op?


Zelf had ik het probleem bij:

1
2
3
4
5
6
a = b.length;

i = 0
while (i < a)
b.removechild();
}


Dat dan dus enkel de helft van de childs weggegooid werd (5000 childs, dan is a op een gegeven moment 2500, i ook, en is a niet kleiner dan i meer.
  vrijdag 29 juni 2007 @ 20:28:18 #89
693 ChOas
** Warning: Choking hazard **
pi_50982203
quote:
Op vrijdag 29 juni 2007 19:41 schreef Geqxon het volgende:

[..]

Maar is dat dan niet dynamisch? Als ik "a = document.getElementById('hi').length" pak, dan krijg ik toch elke keer als ik naar "a" vraag de dan geldende lengte van "hi" ? Of slaat hij deze waarde enkel 1 maal op?
a is op dat moment een statische variabele...

Je wijst maar 1 keer de waarde van 'document.getElementById('hi').length' aan 'a' toe ... die waarde krijgt a, en die verandert niet.

Dus als je telkens de nieuwe lengte wil zal je deze telkens opnieuw moeten opvragen.

Trouwens, .length is ongetwijfeld een item wat goedkoop is om op te vragen, dus zoveel maakt dat niet uit...

voor hetzelfde geld schrijf je

1
2
3
function va() {
 return document.getElementById('hi').length;
};


En gebruik je verder va() i.p.v. 'a'... (met als nadeel dat je de overhead van een functieaanroep hebt, maar maakt je code misschien in sommige gevallen wat netter)
"I contend that we are both atheists. I just believe in one fewer god than you do.
When you understand why you dismiss all the other possible gods, you will understand why I dismiss yours."

[Stephen Roberts]
pi_50983398
Als je een aantal keer de length property van een element wil opvragen dan kan je wel het element zelf in een variable zetten. Dat scheelt een heleboel opzoekwerk in de DOM.

Maar volgens mij is er geen enkel html element die standard een length property heeft
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_50985079
quote:
Op vrijdag 29 juni 2007 21:11 schreef SuperRembo het volgende:
Als je een aantal keer de length property van een element wil opvragen dan kan je wel het element zelf in een variable zetten. Dat scheelt een heleboel opzoekwerk in de DOM.

Maar volgens mij is er geen enkel html element die standard een length property heeft
document.getElementById("div").elements.length? Of bedoel je dat niet?
pi_50985434
Alleen een form element heeft een elements property, een div niet. Tenzij je die er zelf op zet natuurlijk.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_51176658
Ik wil dmv javascript een aantal punten op een plaatje kunnen aangeven en later deze of via een form of via xml opslaan in een mysql database.
De punten moeten ook nog verplaatst en verwijderd kunnen worden.

Ik kan me herinneren dat ik in een van de javascript voor dummies range een script daarvoor gezien heb, maar kan deze niet meer vinden.

Wie weet waar ik die kan vinden ?
  zaterdag 14 juli 2007 @ 16:27:46 #94
136730 PiRANiA
All thinking men are atheists.
pi_51463448
Ik heb een aantal <inputs> die ik gebruik als array.
Nou wil ik een knop om inputs er bij te doen.

Ik gebruik nu deze:

1
2
3
4
5
6
7
8
<script type="text/javascript">
<!--
function add()
{
   document.getElementById('cijferinvoer').innerHTML=document.getElementById('cijferinvoer').innerHTML + '<tr><th>CC</th><td><input type="text" name="cijfer[]" AUTOCOMPLETE="of"></td><td><input type="text" name="weging[]" AUTOCOMPLETE="of"></td>';
}
//-->
</script>


echter worden de ingevulde vakjes verwijderd als ik dit gebruik.
Is er een andere manier?
  zaterdag 14 juli 2007 @ 16:45:32 #95
136730 PiRANiA
All thinking men are atheists.
pi_51463968
oftewel: hoe voeg ik extra content toe aan een pagina zonder dat de input values verwijnen?

www.wrts.nl gebruikt het ook:
http://www.wrts.nl/lijst/create
pi_51464911
De makkelijkste en netste oplossing is niet het toevoegen via JS en innerHTML, maar dmv een div met style "display: none;" die je mbv javascript op "display: block;" zet. Zo zal de state van je form gewoon behouden blijven en hoef je ook geen html in je JS code op te nemen (want dat is :r).

Voorbeeldje:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script type="text/javascript">

function showExtraContent() {
   var extraContent = document.getElementById('extraContent');
   extraContent.style.display = 'block';
}

</script>

<p>
standaard content bla bla bla</p>

<div id="extraContent" style="display: none;">
   bla bla bla extra content bla bla
</div>

<a href="#" onclick="showExtraContent(); return false;">klik voor extra content</a>
  zaterdag 14 juli 2007 @ 17:25:50 #97
136730 PiRANiA
All thinking men are atheists.
pi_51465111
quote:
Op zaterdag 14 juli 2007 17:19 schreef Farenji het volgende:
De makkelijkste en netste oplossing is niet het toevoegen via JS en innerHTML, maar dmv een div met style "display: none;" die je mbv javascript op "display: block;" zet. Zo zal de state van je form gewoon behouden blijven en hoef je ook geen html in je JS code op te nemen (want dat is ).

Voorbeeldje:


[ code verwijderd ]
maar dan kunnen er niet meerdere rijen toegevoegd worden.
  zaterdag 14 juli 2007 @ 17:27:57 #98
136730 PiRANiA
All thinking men are atheists.
pi_51465184
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function add()
{
   var tbody = document.getElementById
('cijferinvoer').getElementsByTagName("tbody")[0];
    var row = document.createElement("tr")
    var th1 = document.createElement("th")
    th1.appendChild(document.createTextNode("CC"))
   var td1 = document.createElement("td")
   var a = '<input type="text" name="var1[]" AUTOCOMPLETE="off">'
    td1.appendChild(document.createTextNode(a))
    var td2 = document.createElement("td")
    td2.appendChild (document.createTextNode('<input type="text" name="var2[]" AUTOCOMPLETE="off">'))
    row.appendChild(th1);
    row.appendChild(td1);
   row.appendChild(td2);
    tbody.appendChild(row);


deze gebruik ik nu.
Alles lukt, alleen komt er niet de inputbox die ik wil in de nieuwe TD's, maar gewoon tekst:
quote:
CC <input type="text" name="var1[]" AUTOCOMPLETE="off"> <input type="text" name="var1" AUTOCOMPLETE="off">
  zaterdag 14 juli 2007 @ 17:30:09 #99
136730 PiRANiA
All thinking men are atheists.
pi_51465241
1
2
  var a = '<input type="text" name="var1[]" AUTOCOMPLETE="off">'
    td1.appendChild(document.createTextNode(a))


Hoe maak ik dus in plaats van createTextNode: createHTMLNode oid...

bestaat dat? of moet het anders?
pi_51465264
Of je gebruikt DOM functies om nieuwe html elementen toe te voegen.

Als je een willekeurig aantal regel toe wil kunnen voegen dan kom je er niet met een verborgen divje.

Het zal ook al schelen als je geen fouten maakt in de html die je toe voegt. Er ontbreekt een sluittag voor de tr, en autocomplete op "off" zetten (niet "of").
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_51465299
WTF is dat AUTOCOMPLETE=off? Dat is sowieso geen geldige opmaak. Het zal een of andere custom toevoeging zijn voor een of ander script maar het zal hoogstwaarschijnlijk de reden zijn waarom je zo'n node niet mbv DOM kan aanmaken.
pi_51465451
Autocomplete is gewoon een attribute om te voorkomen dat je browser de waarde van het veld automatisch aanvult.
Het probleem is dat je natuurlijk niet met createTextNode en een html string een invoerveld kan maken. Dat moet je ook via createElement doen.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  zaterdag 14 juli 2007 @ 18:01:12 #103
136730 PiRANiA
All thinking men are atheists.
pi_51466132
quote:
Op zaterdag 14 juli 2007 17:32 schreef Farenji het volgende:
WTF is dat AUTOCOMPLETE=off? Dat is sowieso geen geldige opmaak. Het zal een of andere custom toevoeging zijn voor een of ander script maar het zal hoogstwaarschijnlijk de reden zijn waarom je zo'n node niet mbv DOM kan aanmaken.
http://www.w3.org/Submission/web-forms2/#the-autocomplete
  zaterdag 14 juli 2007 @ 18:01:43 #104
136730 PiRANiA
All thinking men are atheists.
pi_51466142
quote:
Op zaterdag 14 juli 2007 17:37 schreef SuperRembo het volgende:
Autocomplete is gewoon een attribute om te voorkomen dat je browser de waarde van het veld automatisch aanvult.
Het probleem is dat je natuurlijk niet met createTextNode en een html string een invoerveld kan maken. Dat moet je ook via createElement doen.
createElement, ga ik proberen...
  dinsdag 17 juli 2007 @ 20:27:24 #105
71919 wonderer
Hung like a My Little Pony
pi_51570472
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  function resize_images()
  {
    for (i = 0; i < document.images.length; i++)
    {
      while ( !document.images[i].complete )
      {
        break;
      }
      if ( document.images[i].width > 640 )
      {
        document.images[i].width = 640;
      }
    }
  }


Ik wil ervoor zorgen dat ie alleen images binnen een bepaalde div kleiner maakt, kan dat, als die div een ID heeft? Ik ben niet zo'n held met de volgorde in dat soort dingen :@
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_51571680
Zoiets?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function resize_images()
  {
   img=document.getElementById("id").getElementsByTagName("img");
   
    for (i = 0; i < img.length; i++)
    {
      while ( !img[i].complete )
      {
        break;
      }
      if ( img[i].width > 640 )
      {
        img[i].width = 640;
      }
    }
  }
pi_51620768
als javascript nono zie ik geen ander keus dan me te wenden tot de experts hier...

ik zoek nameljik een tool die mij kan helpen met het zichtbaar maken van een foto plus informatietext wanneer je over een naam gaat met de muis. Ik heb al een script gevonden maar dat is hogere school werk, iets wat mij dus telang gaat duren.

Om een duidelijk beeld te geven zoek ik het volgende:

de gebruiker gaat met de muis over en/of klikt op de naam die er staat. op dat moment komt er een popup scherm naar voren waar een foto instaat en wat begeleidende informatie (mogelijk ook een clickable url als dat mogelijk is) . zoals ik al zei is mijn kennis wat betreft java echt minimaal dus zoek of een goede script die gebruksvriendelijk is OF iemand die tijd over heeft en me kan helpen om iig een begin te maken met dit alles..
Hooray for boobies!
  donderdag 19 juli 2007 @ 15:38:10 #108
71919 wonderer
Hung like a My Little Pony
pi_51628850
Zoiets heb ik wel es gemaakt en het kan in principe op twee manieren:

-je laadt alle foto's en informatie al op je pagina, maar in een divje met display:none; Met een mouseover of onclick verander je de style van dat divje dan naar zichtbaar (met een paar extra attributen zoals positie en grootte)

-Je maakt een aparte pagina die de betreffende foto zou laden (zoals je zou doen als je die pagina met de foto in een nieuw venster zou openen), gebruikt hetzelfde zichtbaar/onzichtbaar principe, maar bij onclick/mouseover maak je het divje niet alleen zichtbaar, je laadt via AJAX die pagina erin.

Geen van beide vergt heel veel codeerwerk en ik wil best wat posten. Kan alleen niet garanderen dat het perfect is dus als er een expert naar wil kijken voor je het gebruikt zou dat denk ik wel handig zijn
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_51628936
elke hulp is welkom.. om het wat duidelijker te maken, het geheel moet komen in een geeklog cms systeem, de site vind je onder mijn profiel, kan bijna niet missen!
Hooray for boobies!
pi_51635206
quote:
Op donderdag 19 juli 2007 15:40 schreef Spockjuh_ het volgende:
elke hulp is welkom.. om het wat duidelijker te maken, het geheel moet komen in een geeklog cms systeem, de site vind je onder mijn profiel, kan bijna niet missen!
quote:
Not Found
The requested URL /suspended.page/ was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
pi_51637665
ja klopt, ben bezig met de server op dit moment. wellicht niet het meeste geschikte tijdstip, ik weet het..
Hooray for boobies!
pi_51650753
Hoi,

wat nou als ik mijn hele (dynamische) pagina af wil laten hangen van een afbeelding qua dimensies. Dus aan de hand van de breedte worden de div's opgebouwd (aan de hand van het HTML DOM object).

Ja, dan doen we dus,
1
2
3
4
var plaatje = new Image();
plaatje.src = 'blaat.gif';
var breedte = plaatje.width;
var hoogte = plaatje.height;


Dit werkt in IE en Opera. In Firefox gaat het alles door elkaar omdat de gegevens op 0 staan. Vervolgens ververs ik de pagina in Firefox en alles staat goed.

Dan proberen we,
1
2
3
4
5
var plaatje = document.createElement('img');
plaatje.setAttribute('src', 'plaatje.gif');
eenDiv.appendChild(plaatje);
var breedte = plaatje.width;
var hoogte = plaatje.height;


Werkt wederom perfect in IE en Opera, Firefox zet alles weer op 0. Na een verversing is alles weer ok.

Misschien dan wachten tot het plaatje klaar is met laden
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
var startTijd = new Date();
var metError = false;
var plaatje = new Image();
plaatje.src = 'plaatje.gif';
plaatje.onLoad = plaatjeGeladen;

function plaatjeGeladen()
{
  var timeOut;
  var plaatjeCompleetGeladen = false;

  while (!plaatjeCompleetGeladen) {
    timeOut = new Date();

    if (plaatje.complete) {
      plaatjeCompleetGeladen = true;
      metError = false;
    }

    // timeout op laten treden na 10s
    if (timeOut.getTime() - startTijd.getTime() >= 10000) {
      plaatjeCompleetGeladen = true;
      metError = true;
    }
  }
}

var breedte = plaatje.width;
var hoogte = plaatje.height;


Mooi toch, met timeout voor afbeeldingen die echt niet gevonden kunnen worden, om niet in een oneindige loop te blijven hangen...

Maarrrr, dit werkt alleen echt goed in Opera... Serverside afbeeldingen geprobeerd, clientside, het werkt NIET.

Suggesties, iemand?
pi_51650957
Wat doen clientHeight en offsetHeight bij je?
pi_51651431
De onload event op plaatjes is in IE en FF geloof ik nog all buggy. Kijk eens naar de user_images() functie die hier op FOK (en op GoT) wordt gebruikt om te grootte plaatjes automatisch te verkleinen.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_51653321
quote:
Op vrijdag 20 juli 2007 08:56 schreef Geqxon het volgende:
Wat doen clientHeight en offsetHeight bij je?
Hetzelfde als height en width?
Helpt mij ook verder niet echt vrees ik :(
quote:
Op vrijdag 20 juli 2007 09:21 schreef SuperRembo het volgende:
De onload event op plaatjes is in IE en FF geloof ik nog all buggy. Kijk eens naar de user_images() functie die hier op FOK (en op GoT) wordt gebruikt om te grootte plaatjes automatisch te verkleinen.
Tja, nu weet ik dat de browsers de volgende dingen ondersteunen:

Firefox: image.complete, image.width, image.naturalWidth
Opera: image.complete, image.width
IE: image.width

Allemaal dus image.width.

Dan doe ik het volgende:
1
2
3
4
5
...
if (image.width > 0) {
  blaat();
}
...

(in een while-lus)

werkt prima in IE en Opera. Niet in Firefox.

Ik ga nog even een en ander proberen met clientWidth, offsetWidth en naturalWidth om er zeker van te zijn dat echt alle mogelijke opties daar mee heb geprobeerd ;)
pi_51653484
IE:
1
2
3
4
achtergrond.clientWidth: 0
achtergrond.offsetWidth: 0
achtergrond.naturalWidth: undefined
achtergrond.width: 550


Opera:
1
2
3
4
achtergrond.clientWidth: 0
achtergrond.offsetWidth: 0
achtergrond.naturalWidth: undefined
achtergrond.width: 550


Firefox:
1
2
3
4
achtergrond.clientWidth: 0
achtergrond.offsetWidth: 0
achtergrond.naturalWidth: 0
achtergrond.width: 0


Firefox NA verversen pagina:
1
2
3
4
achtergrond.clientWidth: 0
achtergrond.offsetWidth: 0
achtergrond.naturalWidth: 550
achtergrond.width: 550


Deze waardes krijg ik dus in alle browsers met var blaat = new Image EN var blaat = document.createElement('img')!!!!

[ Bericht 6% gewijzigd door CiQNiZ op 20-07-2007 10:47:15 ]
pi_51654299
quote:
Op vrijdag 20 juli 2007 10:36 schreef CiQNiZ het volgende:
werkt prima in IE en Opera. Niet in Firefox.
Dat komt waarschijnlijk omdat je de property opvraagt als het plaatje noet niet (volledig) is geladen. Hoe je dat afvangt kan je dus even van die user_images() functie afkijken.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_51654467
quote:
Op vrijdag 20 juli 2007 11:07 schreef SuperRembo het volgende:

[..]

Dat komt waarschijnlijk omdat je de property opvraagt als het plaatje noet niet (volledig) is geladen. Hoe je dat afvangt kan je dus even van die user_images() functie afkijken.
Ik vraag de properties op TOTdat deze geset zijn. Dus dat houdt in dat ik wacht tot het plaatje geladen is (via een while-lus). Na 4 seconden zeg ik stop (duurt te lang, want het is lokaal), en dan heeft Firefox nog niks bijzonders gedaan. IE en Opera die komen niet eens zover, die zijn dan al lang klaar!
pi_51657618
quote:
Op vrijdag 20 juli 2007 11:12 schreef CiQNiZ het volgende:

[..]

Ik vraag de properties op TOTdat deze geset zijn. Dus dat houdt in dat ik wacht tot het plaatje geladen is (via een while-lus). Na 4 seconden zeg ik stop (duurt te lang, want het is lokaal), en dan heeft Firefox nog niks bijzonders gedaan. IE en Opera die komen niet eens zover, die zijn dan al lang klaar!
Dat komt omdat er tijdens de while loop geen events worden afgehandeld. Waarschijnlijk staat op deze maniet de cpuload nog op 100% ook. Als je wil kijken of het plaatje na x seconden nog niet geladen is dan kan je beter setTimeout() gebruiken.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_51714889


[ Bericht 100% gewijzigd door Spockjuh_ op 22-07-2007 12:51:30 (dubbel..) ]
Hooray for boobies!
pi_51714900
quote:
Op donderdag 19 juli 2007 15:40 schreef Spockjuh_ het volgende:

als javascript nono zie ik geen ander keus dan me te wenden tot de experts hier...

ik zoek nameljik een tool die mij kan helpen met het zichtbaar maken van een foto plus informatietext wanneer je over een naam gaat met de muis. Ik heb al een script gevonden maar dat is hogere school werk, iets wat mij dus telang gaat duren.

Om een duidelijk beeld te geven zoek ik het volgende:

de gebruiker gaat met de muis over en/of klikt op de naam die er staat. op dat moment komt er een popup scherm naar voren waar een foto instaat en wat begeleidende informatie (mogelijk ook een clickable url als dat mogelijk is) . zoals ik al zei is mijn kennis wat betreft java echt minimaal dus zoek of een goede script die gebruksvriendelijk is OF iemand die tijd over heeft en me kan helpen om iig een begin te maken met dit alles..

elke hulp is welkom.. om het wat duidelijker te maken, het geheel moet komen in een geeklog cms systeem, de site vind je onder mijn profiel, kan bijna niet missen!
kunnen jullie nog eens een poging wagen, de boel draait weer..
Hooray for boobies!
  FOK!-Schrikkelbaas vrijdag 27 juli 2007 @ 16:13:51 #122
1972 Swetsenegger
Egocentrische Narcist
pi_51890383
Als ik meerdere elementen met hetzelfde id heb in een source. Hoe kan ik dan met javascript de juiste vinden?

document.getElementById geeft volgens mij de eerste terug?
pi_51890654
quote:
Op vrijdag 27 juli 2007 16:13 schreef Swetsenegger het volgende:
Als ik meerdere elementen met hetzelfde id heb in een source. Hoe kan ik dan met javascript de juiste vinden?

document.getElementById geeft volgens mij de eerste terug?
Het probleem anders oplossen? Kun je niet alles een bepaalde class-name geven? getElements() oid?
  FOK!-Schrikkelbaas vrijdag 27 juli 2007 @ 16:28:39 #124
1972 Swetsenegger
Egocentrische Narcist
pi_51890952
quote:
Op vrijdag 27 juli 2007 16:21 schreef Geqxon het volgende:

[..]

Het probleem anders oplossen? Kun je niet alles een bepaalde class-name geven? getElements() oid?
neen... dat kan niet

het is niet mijn source
pi_51891118
quote:
Op vrijdag 27 juli 2007 16:28 schreef Swetsenegger het volgende:

[..]

neen... dat kan niet

het is niet mijn source
En staan alle items niet toevallig in bijvoorbeeld een tabel? Je zou dan een getElements kunnen uitvoeren, dan krijg je een array met alle elementen binnen deze tabel. Vervolgens een for-loopje er overheen, een if-statement (if element.id == 'swets'), en zo ja > Iets doen.
  FOK!-Schrikkelbaas vrijdag 27 juli 2007 @ 16:38:24 #126
1972 Swetsenegger
Egocentrische Narcist
pi_51891314
quote:
Op vrijdag 27 juli 2007 16:33 schreef Geqxon het volgende:

[..]

En staan alle items niet toevallig in bijvoorbeeld een tabel? Je zou dan een getElements kunnen uitvoeren, dan krijg je een array met alle elementen binnen deze tabel. Vervolgens een for-loopje er overheen, een if-statement (if element.id == 'swets'), en zo ja > Iets doen.
nou dat is vrij lastig. er is de niet w3c document.all functie. Maar de juiste syntax om het tweede element met hetzelfde id te vinden is lastig
pi_51891459
quote:
Op vrijdag 27 juli 2007 16:38 schreef Swetsenegger het volgende:

[..]

nou dat is vrij lastig. er is de niet w3c document.all functie. Maar de juiste syntax om het tweede element met hetzelfde id te vinden is lastig :)
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
<div id="customerdatafield">
   <div id="negger">Data</div>
   <div id="swets">Data</div>
   <div id="negger">Data</div>
   <div id="swets">Data</div>
   <div id="negger">Data</div>
</div>

<script>

var parentdiv = "customerdatafield"
var childdiv = "swets";

var customerArray = document.getElementById(parentdiv).getElementsByTagName("div");


for (i = 0; i < customerArray.length; i++){
   var customer = customerArray[i];

   if (customer.id == childdiv){
      customer.style.backgroundColor = "#FF9900"
   }

}
</script>


Doet exact wat jij wilt. Gok ik. :)
  zondag 19 augustus 2007 @ 20:40:17 #128
37634 wobbel
Da WoBBeL King
pi_52509630
Ik gebruik het volgende PHP, HTML en JS script:

Javascript 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
var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// JScript gives us Conditional compilation, we can cope with old IE versions.
// and security blocked creation of the objects.
 try {
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (e) {
  try {
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (E) {
   xmlhttp = false;
  }
 }
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  xmlhttp = new XMLHttpRequest();
}
function BarcodeCheck(value)
{
   xmlhttp.open("GET", "ajax_check.php?request=barcodecheck&barcode="+value,true);//method, target, async (set always true!)
   
   xmlhttp.onreadystatechange=function() {
      if (xmlhttp.readyState==4) {
         document.getElementById('BarcodeGeldigheid').innerHTML = xmlhttp.responseText;
      }
   }
   
   xmlhttp.send(null);
}


die ik op deze manier aanroep:
1<input type="text" name="BarcodeInputVeld" id="BarcodeInputVeld" onBlur="BarcodeCheck(this.value)" />



vervolgens krijg ik van ajax_check.php een waarde terug die ik met <span id="BarcodeGeldigheid"> </span> bekijk...

Nu komt het probleem, ajax check.php poept het volgende uit richting de HTML pagina:
1
2
<br /><font color="#00c600"><strong>F. van Gaalen (Sempron 2800+)</strong></font>
<script language="javascript">insRow()</script>


maar die code wordt niet uitgevoerd, want alert('hoi'); voert ie ook niet uit...whats the problem hiero? de tekst F. van Gaalen (Sempron 2800+) geeft ie wel netjes weer...

(en volgensmij werk ik heel erg verkeerd met AJAX, maar dan verbeter me maar (of geen tips enzo)
pi_52509981
Als je mbv ajax een deel van een document dynamisch update, dan wordt javascript in die code idd niet uitgevoerd. Daar is weinig aan te doen behalve zelf alle javascript mbv "eval()" uitvoeren of je kan ook een of andere js lib gebruiken die dat voor je uit handen neemt (dojo kan dat bijv).
pi_52510005
Google eens wat op eval. Doet exact wat jij wilt.
  zondag 19 augustus 2007 @ 21:28:02 #131
37634 wobbel
Da WoBBeL King
pi_52511163
quote:
Op zondag 19 augustus 2007 20:53 schreef Geqxon het volgende:
Google eens wat op eval. Doet exact wat jij wilt.
ik heb er al op gegoogled maar ik snap er echt geen fuck van...

Als ik namelijk hieronder een barcode invul:


en het is correct, dan wil ik namelijk het invul veld groen maken en 3 rijen toevoegen aan de tabel...



als ie niet correct is, dan mag het vakje rood worden en hoeven er niet 3 rijen te worden toegevoegd
pi_52515233
Zo moeilijk is dat toch niet? Wat snap je niet?
pi_52529879
In het PHP topic vroeg ik het volgende:

Ik heb een formulier en ik wil een voorbeeld zien voordat het gesubmit wordt via een button. Een voorbeeld verschijnt in een popup... Alle inhoud komt alleen niet aan in de popup. Wat doe ik fout?

Inmiddels ben ik erachter dat het eventueel wel mogelijk is met Javascript. Na wat zoeken kom ik niet verder dan een voorbeeld te krijgen op dezelfde pagina.

Kan iemand mij helpen?
pi_52530025
Ik zou dat toch gewoon lekker met php doen en voor de preview een extra hidden formveld meesturen, preview=1, dat ervoor zorgt dat php de data niet wegschrijft maar alleen toont.
  maandag 20 augustus 2007 @ 16:44:33 #135
71919 wonderer
Hung like a My Little Pony
pi_52532302
quote:
Op maandag 20 augustus 2007 15:34 schreef Qunix het volgende:
In het PHP topic vroeg ik het volgende:

Ik heb een formulier en ik wil een voorbeeld zien voordat het gesubmit wordt via een button. Een voorbeeld verschijnt in een popup... Alle inhoud komt alleen niet aan in de popup. Wat doe ik fout?

Inmiddels ben ik erachter dat het eventueel wel mogelijk is met Javascript. Na wat zoeken kom ik niet verder dan een voorbeeld te krijgen op dezelfde pagina.

Kan iemand mij helpen?
Zo'n functie heb ik toevallig deze week nog ergens gejat ;)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function winOpener(theURL, winName, scrollbars, resizable, width, height) {

  winFeatures = 'left=' + (screen.availWidth-10-width)/2 + ',top=' + (screen.availHeight-30-height)/2 + ',scrollbars=' + scrollbars + ',resizable=' + resizable + ',width=' + width + ',height=' + height + ',toolbar=0,location=0,status=0,menubar=0'
    window.open(theURL, winName, winFeatures);
}

//Function to open preview window
function OpenPreviewWindow(formName){

  now = new Date;
  submitAction = formName.action;
  submitTarget = formName.target;

  winOpener('','preview',1,1,640,400)

  formName.action = 'forum.php?c=preview';
  formName.target = 'preview';
  formName.submit();

  formName.action = submitAction;
  formName.target = submitTarget;
}


En in je html zet je dit:
1<input type="button" class="inline_submit" name="submit_preview" value="voorbeeld" accesskey="p" onClick=" OpenPreviewWindow(document.forum_form);">


waar "forum_form" de naam is van je formulier.
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_52532760
quote:
Op maandag 20 augustus 2007 15:34 schreef Qunix het volgende:
In het PHP topic vroeg ik het volgende:

Ik heb een formulier en ik wil een voorbeeld zien voordat het gesubmit wordt via een button. Een voorbeeld verschijnt in een popup... Alle inhoud komt alleen niet aan in de popup. Wat doe ik fout?

Inmiddels ben ik erachter dat het eventueel wel mogelijk is met Javascript. Na wat zoeken kom ik niet verder dan een voorbeeld te krijgen op dezelfde pagina.

Kan iemand mij helpen?
wat je eigenlijk doet is gewoon een onclick-window-open() op de button...
dat betekent inderdaad dat er een 'gewoon' request gedaan wordt naar die pagina en géén formulier-waardes worden verstuurd...

dat is je probleem en dat is verder niet afhankelijk van php of javascript (als je liever javascript wil gebruiken om die preview te genereren moet je een functie die die gehele HTMl-code wegschrijft, ook dat is mogelijk)

wil je echter gewoon je bestaande code gebruiken, maar dan van je button een submit
1<input type="submit" onclick="popup('preview.php');" name="preview" value="Voorbeeld" />

in je functie pop moet je ervoor zorgen dat het nieuwe venster een name krijgt bv "nieuwvenster" en het formulier een target en dus het nieuwe submit-request post naar "nieuwvenster"...

via $_POST["preview"] kun je de waarde opvragen van de button die naar de preview doorstuurd, die dient ook "Voorbeeld" te zijn
"Whatever you feel like: Life’s not one color, nor are you my only reader" - Ausonius, Epigrammata 25
pi_52536165
1
2
3
4
5
6
7
8
9
10
<script language="javascript">
var data = window.opener.document.getElementById('content').value;
var title = window.opener.document.getElementById('title').value;
var subtitle = window.opener.document.getElementById('subtitle').value;
var ender = window.opener.document.getElementById('ender').value;
var regExp = new RegExp("n","g");
var result = data.replace(regExp,"<br/>");
document.writeln('<b>'+subtitle+'</b><br/><br/>');
document.writeln(result);
</script>


Dit is wat ik gebruik om info vanuit een formulier te halen.
Dit staat dan in de popup!
  donderdag 23 augustus 2007 @ 17:33:41 #138
37634 wobbel
Da WoBBeL King
pi_52627007
quote:
Op zondag 19 augustus 2007 23:20 schreef Farenji het volgende:
Zo moeilijk is dat toch niet? Wat snap je niet?
hoe ik dmv ajax er 3 extra rows bij kan krijgen, want javascript wordt niet uitgevoerd als ik ajax output
pi_52629086
Thanks
Ik ga morgen ermee aan de slag
pi_52783069
Stel ik heb een array in js

vb:
1x = new Array("blaat" => "123", "woei" => "345");


hoe kan ik dan blaat en 123 uitlezen zoals in php met foreach ($x as $key => $value)

Anyone?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_52783309
quote:
Op woensdag 29 augustus 2007 16:01 schreef Chandler het volgende:
Stel ik heb een array in js

vb:
[ code verwijderd ]

hoe kan ik dan blaat en 123 uitlezen zoals in php met foreach ($x as $key => $value)

Anyone?
1
2
3
4
5
6
for (itemkey in arrayx){
   var itemvalue = arrayx[itemkey];
   
   alert (itemkey);
   alert(itemvalue);
}




[ Bericht 11% gewijzigd door Geqxon op 29-08-2007 16:17:35 ]
pi_52783689
wist niet dat het zo gemakkelijk was
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_52805906
Nog een vraag.

Ik wil bepaalde elementen in een pagina veranderen als de brouwser wordt verkleind, echter lukt het niet met onderstaande code

1window.onresize = adBox();


Hoe doen jullie dit? PS onderstaande code is voor positioneren van Adsense SkyScraper

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
<table>
<tr>
    <td>Scherm breedte</td>
    <td><div id="pbreedte"></div></td>
</tr>
<tr>
    <td>Center scherm</td>
    <td><div id="pcenter"></div></td>
</tr>
<tr>
    <td>Positie links</td>
    <td><div id="plinks"></div></td>
</tr>
<tr>
    <td>Positie rechts</td>
    <td><div id="prechts"></div></td>
</tr>
</table>

<div id=centermidden style="position: absolute; top: 0; left: 0;display: none; border: 1px solid black; height: 300px; width: 160px; text-align: center;"> midden</div>
<div id=centerlinks style="position: absolute; top: 0; left: 0;display: none; border: 1px solid green; height: 300px; width: 160px;">Links</div>
<div id=centerrechts style="position: absolute; text-align: right; top: 0; left: 0;display: none; border: 1px solid orange; height: 300px; width: 160px;">Rechts</div>


<script language="javascript">

function adBox()
{
    contentSize = 500;

    document.getElementById('pbreedte').innerHTML = document.documentElement['offsetWidth'];
    document.getElementById('pcenter').innerHTML  = ((document.documentElement['offsetWidth'] -2)/2 - 80);

    midden = document.getElementById('pcenter').innerHTML;

    document.getElementById('plinks').innerHTML          = ((document.documentElement['offsetWidth']/2) - (contentSize /2) - 160);
    document.getElementById('centerlinks').style.left    = ((document.documentElement['offsetWidth']/2) - (contentSize /2) - 160);
    document.getElementById('centerlinks').style.display = 'block';

    document.getElementById('prechts').innerHTML          = ((document.documentElement['offsetWidth']/2) + (contentSize /2));
    document.getElementById('centerrechts').style.left    = ((document.documentElement['offsetWidth']/2) + (contentSize /2));
    document.getElementById('centerrechts').style.display = 'block';

    document.getElementById('centermidden').style.left    = document.getElementById('pcenter').innerHTML;
    document.getElementById('centermidden').style.display = 'block';
}

window.onresize = adBox();
adBox();
</script>
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_52806006
1      window.attachEvent("onresize", adBox)


Voor Internet Explorer tenminste. Die van Firefox is mij even ontvlogen.

Edit: Schaamteloze copy/paste:

1
2
3
4
5
6
if (window.addEventListener)       //DOM method for binding an event
   window.addEventListener("load", dothis, false)
else if (window.attachEvent)       //IE exclusive method for binding an event
   window.attachEvent("onload", dothis)
else if (document.getElementById) //support older modern browsers
   window.onload=dothis
pi_52806868
Leuke foutmelding van FF:

Fout: uncaught exception: [Exception... "Could not convert JavaScript argument" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: file:///..../desktop/centerscreen.html :: <TOP_LEVEL> :: line 51" data: no]

Foutieve code
1window.addEventListener("onresize", adBox(), false)


Ook foute code maar zonder error
1window.addEventListener("onresize", adBox, false)


Beiden werken trouwens niet in FF
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_52807044
1window.addEventListener("onresize", "adBox()", false);
pi_52808165
quote:
Op donderdag 30 augustus 2007 12:13 schreef super-muffin het volgende:
[ code verwijderd ]
Fout: uncaught exception: [Exception... "Could not convert JavaScript argument" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: file:///.../desktop/centerscreen.html :: <TOP_LEVEL> :: line 51" data: no]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_52808212
quote:
Op donderdag 30 augustus 2007 12:07 schreef Chandler het volgende:
Leuke foutmelding van FF:

Fout: uncaught exception: [Exception... "Could not convert JavaScript argument" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: file:///..../desktop/centerscreen.html :: <TOP_LEVEL> :: line 51" data: no]

Foutieve code
[ code verwijderd ]

Ook foute code maar zonder error
[ code verwijderd ]

Beiden werken trouwens niet in FF
En wat als je er "resize" in plaats van "onresize" van maakt, en je geen haakjes achter je functie plakt?
pi_52808572
Helaas het zelfde effect... echter werkt het wel weer als ik in de body onresize plaats maar dat wil ik niet..

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
<html>
<head>
    <title>text resize</title>
</head>
<body onResize="adBox();">

<table>
<tr>
    <td>Scherm breedte</td>
    <td><div id="pbreedte"></div></td>
</tr>
<tr>
    <td>Center scherm</td>
    <td><div id="pcenter"></div></td>
</tr>
<tr>
    <td>Positie links</td>
    <td><div id="plinks"></div></td>
</tr>
<tr>
    <td>Positie rechts</td>
    <td><div id="prechts"></div></td>
</tr>
</table>

<div id=centermidden style="position: absolute; top: 0; left: 0;display: none; border: 1px solid black; height: 300px; width: 160px; text-align: center;"> midden</div>
<div id=centerlinks style="position: absolute; top: 0; left: 0;display: none; border: 1px solid green; height: 300px; width: 160px;">Links</div>
<div id=centerrechts style="position: absolute; text-align: right; top: 0; left: 0;display: none; border: 1px solid orange; height: 300px; width: 160px;">Rechts</div>


<script language="javascript">

function adBox()
{
    contentSize = 500;

    document.getElementById('pbreedte').innerHTML = document.documentElement['offsetWidth'];
    document.getElementById('pcenter').innerHTML  = ((document.documentElement['offsetWidth'] -2)/2 - 80);

    midden = document.getElementById('pcenter').innerHTML;

    document.getElementById('plinks').innerHTML          = ((document.documentElement['offsetWidth']/2) - (contentSize /2) - 160);
    document.getElementById('centerlinks').style.left    = ((document.documentElement['offsetWidth']/2) - (contentSize /2) - 160);
    document.getElementById('centerlinks').style.display = 'block';

    document.getElementById('prechts').innerHTML          = ((document.documentElement['offsetWidth']/2) + (contentSize /2));
    document.getElementById('centerrechts').style.left    = ((document.documentElement['offsetWidth']/2) + (contentSize /2));
    document.getElementById('centerrechts').style.display = 'block';

    document.getElementById('centermidden').style.left    = document.getElementById('pcenter').innerHTML;
    document.getElementById('centermidden').style.display = 'block';
}


if (window.addEventListener)       //DOM method for binding an event
{
    window.addEventListener("resize", adBox(), true)
}
else if (window.attachEvent)       //IE exclusive method for binding an event
{
    window.attachEvent("resize", adBox())
}
else if (document.getElementById) //support older modern browsers
{
    window.resize = adBox();
}

adBox();
</script>

</body>
</html>
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_52808794
Helaas kan ik het hier niet even snel cross-browser testen, maar dit stukje script werkt onder FireFox en IE7 prima:

1
2
3
4
5
6
7
8
9
10
function showMessage(){
   alert("Yoob");
}

if (window.addEventListener)       //DOM method for binding an event
   window.addEventListener("resize", showMessage, false)
else if (window.attachEvent)       //IE exclusive method for binding an event
   window.attachEvent("onresize", showMessage)
else if (document.getElementById) //support older modern browsers
   window.onresize=showMessage
pi_52808922
Het werkt nu wel iig, maar zie eingelijk geen verschil what happend?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_52808951
In IE6 (hier op mijn werk) werkt de resize functie iig niet
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_52809036
Met de addEvent/removeEvent functies van quirksmode.org:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function addEvent( obj, type, fn )
{
   if (obj.addEventListener)
      obj.addEventListener( type, fn, false );
   else if (obj.attachEvent)
   {
      obj["e"+type+fn] = fn;
      obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
      obj.attachEvent( "on"+type, obj[type+fn] );
   }
}

function resizeHandler(e)
{
   // ...
}

addEvent(window, "resize", resizeHandler);
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_52809041
quote:
Op donderdag 30 augustus 2007 13:20 schreef Chandler het volgende:
Het werkt nu wel iig, maar zie eingelijk geen verschil what happend?
Je moet natuurlijk wel de twee haakjes achter adBox weghalen, als je hem in een event-handler dondert.

[ Bericht 2% gewijzigd door Geqxon op 30-08-2007 13:30:58 ]
pi_52809384
@SuperRembo; dat werkt inderdaad heerlijk! in zowel IE als FF
@Geqxon: dat heb ik dus af en toe ook verwijderd met hetzelfde resultaat
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_52809562
quote:
Op donderdag 30 augustus 2007 13:24 schreef SuperRembo het volgende:
Met de addEvent/removeEvent functies van quirksmode.org:
[ code verwijderd ]
Doet dit niet basicly hetzelfde?
pi_52816398
Volgens mij wel, maar nu blijkt dit weer niet te werken in FF krijg een melding dat LEFT niet geaccepteerd wordt!

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
<div id=centerrechts style="top: 250px; position: absolute; left: 0;display: none; width: 120px;">
... adsense enzo....
</div>


<script language="javascript">
function adBox()
{
    contentSize = 720;

    midden = ((document.documentElement['offsetWidth'] -2)/2 - 80);

    document.getElementById('centerrechts').style.left    = ((document.documentElement['offsetWidth']/2) + (contentSize /2));
    document.getElementById('centerrechts').style.display = 'block';
}


function addEvent( obj, type, fn )
{
   if (obj.addEventListener)
      obj.addEventListener( type, fn, false );
   else if (obj.attachEvent)
   {
      obj["e"+type+fn] = fn;
      obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
      obj.attachEvent( "on"+type, obj[type+fn] );
   }
}

addEvent(window, "resize", adBox);

adBox();
</script>


en dan de melding in FF

1
2
3
Error: Error in parsing value for property 'left'.  Declaration dropped.
Source File: http://www.gfxpoll.nl/index.php
Line: 0


:? snap ut nou helemaal niet meer :P FF ver. 1.5.0.12
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_52816501
quote:
Op donderdag 30 augustus 2007 13:44 schreef Geqxon het volgende:

[..]

Doet dit niet basicly hetzelfde?
Basicly wel. In mijn versie kan je de code makkelijker hergebruiken. Verder zit er een verschil in de scope waarin de handlers worden uitgevoerd.
Maar beide versies zijn verre van bug-vrij.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_52816803
quote:
Op donderdag 30 augustus 2007 18:05 schreef Chandler het volgende:
Volgens mij wel, maar nu blijkt dit weer niet te werken in FF krijg een melding dat LEFT niet geaccepteerd wordt!
[ code verwijderd ]

en dan de melding in FF
[ code verwijderd ]

snap ut nou helemaal niet meer FF ver. 1.5.0.12
Het is niet zo dat de style.left property niet wordt ondersteund, maar de waarde die je er in probeert te zetten is ongeldig. Style.left moet een lengte zijn: een getal en een eenheid (bij px, pt of %). Alleen bij de waarde 0 mag je de eenheid weglaten.

En het wordt tijd om FF te updaten naar 2.x
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_52818154
quote:
Op donderdag 30 augustus 2007 18:09 schreef SuperRembo het volgende:

[..]

Basicly wel. In mijn versie kan je de code makkelijker hergebruiken. Verder zit er een verschil in de scope waarin de handlers worden uitgevoerd.
Maar beide versies zijn verre van bug-vrij.
Ik heb mij er eens even in verdiept, ik heb hem door. Dank u
pi_52976765
Nog een vraagje over arrays

In php kan ik een array zo aanmaken.

$arr = array("naam" => "value");

maar dit werkt niet zo in JS.

arr = new Array("naam" => "value");

hoe doe ik dit in JS?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_52980685
Wat er in javascript het meeste op lijkt is dit:
1
2
3
var arr = {foo: "bar", baz: "bazz"};
alert(arr["foo"]);
alert(arr.foo);


Dan heb je een object/collection. Het is geen array, dus je hebt bijvoorbeeld geen length property die aangeeft hoeveel elementen er in zitten.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_52980720
In javascript is alles een object en kun je dus overal ongelimiteerd properties aan toekennen. Dit kan op vele manieren, dit is allemaal equivalent:

1
2
3
4
var blaat;
blaat.property1 = "blaat";

blaat["property1"] = "blaat;

of:
1
2
3
var blaat = {
  property1:  "blaat"
};
pi_52980797
Ah SuperRembo, jammer dat dat er niet in verwerkt zit want de optie die je aangeeft is niet echt wat ik zoek dan maar zonder array werken
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_52983037
quote:
Op donderdag 6 september 2007 13:29 schreef Chandler het volgende:
Ah SuperRembo, jammer dat dat er niet in verwerkt zit :{ want de optie die je aangeeft is niet echt wat ik zoek :( dan maar zonder array werken :P
Wat zoek je dan? Je kunt er wel doorheen lopen met een for:

1
2
3
4
5
var myCollection = {foo: "bar", baz: "bazz"};
for (var i in myCollection)
{
   alert(myCollection[i]);
}
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  donderdag 6 september 2007 @ 15:40:18 #166
12880 CraZaay
prettig gestoord
pi_52983899
quote:
Op donderdag 6 september 2007 13:29 schreef Chandler het volgende:
Ah SuperRembo, jammer dat dat er niet in verwerkt zit want de optie die je aangeeft is niet echt wat ik zoek dan maar zonder array werken
Er zitten wel arrays in, maar niet met named keys. Maar wat wil je precies doen? Het zou zomaar kunnen dat het toch lukt met objecten of anderszins
pi_52985988
Ik wil een formulier posten middels ajax, zie 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
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
<html>
<head>
<script language="javascript">

var xmlHttp;                 // xmlHttp var.
var xmlHttpError;            // error variable
var xmlHttpFailure = false;  // false for failure
var xmlHttpCache;            // buffer for received data

function create_http_object()
{
    // This array is a list of all/most possible XMLHTTP types
    var ActiveXTypes = [
        "Microsoft.XMLHTTP",
        "MSXML2.XMLHTTP.5.0",
        "MSXML2.XMLHTTP.4.0",
        "MSXML2.XMLHTTP.3.0",
        "MSXML2.XMLHTTP"
    ];

    // Loop through the ActiveXTypes array and 
    for (var i = 0; i < ActiveXTypes.length; i++)
    {
        // try to use the current XMLHTTP object,
        // if not it's not possible try the next
        try
        {
            return new ActiveXObject(ActiveXTypes[i]);
        }
        catch(e)
        { 
            // object kan niet gebruikt worden!
        }
    }

    // none of them worked, try the function XMLHttpRequest()
    try
    {
        return new XMLHttpRequest();
    }
    catch(e)
    { 
        alert("Helemaal geen XML mogelijkheden");
    }

    // It seems that the browser doesn't support AJAX Stuff
    return false;
}

function stateChanged() 
{
    // is readyState 4? 4 =  all data is received 
    if (xmlHttp.readyState == 4)
    {
        // return data to xmlHttpCache variable
        xmlHttpCache = xmlHttp.responseText;
    }
}

function ajaxSubmit(url, data, returnOBJ)
{
    // url         location of the scripting
    // data        array of submit data
    // returnOBJ   is the object to return the received data to


    // open XMLHTTP connection
    xmlHttp = create_http_object();

    // connection open?
    if (xmlHttp != false)
    {
 
        // when state is ready, do save
        xmlHttp.onreadystatechange = stateChanged();
        // open url
        xmlHttp.open('POST', url, true);

        // set headers before posting
        xmlHttp.setRequestHeader("Content-type",  "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("Content-length", data.length);
        xmlHttp.setRequestHeader("Connection",    "close");

        // send data to server
        xmlHttp.send(data);

        // object is given! (or not?)
        if (returnOBJ != "")
        {
            // add received content to given object (returnOBJ)
            returnOBJ = xmlHttpCache;
        }
    }
    else
    {
        // display ERROR notice
        notifyNoAjax();
    }
}

function ajaxGet(url, data, returnOBJ)
{

    // url          location of scripting
    // data         compilation of string paramters
    // return OBJ   object to return received data to 

    // open XMLHTTP connection
    xmlHttp = create_http_object();

    // connection open?
    if (xmlHttp != false)
    {
        // what to do with received data!
        xmlHttp.onreadystatechange = stateChanged();
        
        // open url location
        xmlHttp.open('GET', url + data, true);

        // send nothing, just go receive data
        xmlHttp.send(null);

        // if received data is longer then....
        if (xmlHttpCache.length > 0 && returnOBJ != "")
        {
            returnOBJ = xmlHttpCache;
        }
    }
    else
    {
        // display ERROR notice!
        notifyNoAjax();
    }
}

function notifyNoAjax()
{
    if (xmlHttpFailure == false)
    {
        alert('Sorry, uw brouwser ondersteund geen AJAX / Javascript calls');
    }
}


</script>
</head>
<body>


<div id="receiveddatadiv" style="width: 300px; height: 100px; border: 1px solid green">Content is comming....</div>


<a href="#" onClick="ajaxGet('file://c:/1.html', 
                             '', 
                             document.getElementById('receiveddatadiv').innerHtml);">AJAX GET TEST</a>

<form>
Name: <input type="text" id="id_name"><br />
Text: <textarea name="text" id="id_text"></textarea><br />
</form>

<input type="button" onClick="ajaxSubmit('c:/test.php', 
                                         'name='  + escape(encodeURI(document.getElementById('id_name').value)) + 
                                         '&text=' + escape(encodeURI(document.getElementById('id_text').value)),
                                         document.getElementById('receiveddatadiv').innerHtml);" value="AJAX POST TEST">
</body>
</html>


echter wilde ik eerst alle variabelen middels een array doorgeven naar de ajaxSubmit of ajaxGet.

Ps wat vinden jullie van dit? heb het nog niet getest hoor :) :D :@
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_52988000
1
2
3
4
5
6
7
8
9
10
11
12
function encodeParams(params)
{  
   var data = [];
   for (p in params)
   {
      data.push(encodeURIComponent(p) + "=" + encodeURIComponent(params[p]));
   }
   return data.join("&");
}

var params = { code: "foo", name: "Foo" };
var data = encodeParams(params);

Dan kan je de variabele data in een url ("test.php?" + data) of als post data in een http request (request.send(data)).
quote:
Sorry, uw brouwser ondersteund geen AJAX / Javascript calls
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_52998717
quote:
Op donderdag 6 september 2007 18:53 schreef SuperRembo het volgende:

[ code verwijderd ]

Dan kan je de variabele data in een url ("test.php?" + data) of als post data in een http request (request.send(data)).
[..]

Mooi lapje code! maar wat bedoel je met de laatste quote? Ik heb de code trouwens aangepast

http://www.bruggema.nl/ajaxtest/#

Nu nog een vraagje, als ik een post doe krijg ik iedere keer een nieuwe inhoud (met cache variabel) maar als ik dit met een GET doe krijg ik continue het zelfde wrom?

[ Bericht 31% gewijzigd door Chandler op 07-09-2007 11:26:42 (visfreaks.nl rulez big time) ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  vrijdag 7 september 2007 @ 12:04:35 #170
12880 CraZaay
prettig gestoord
pi_53002157
quote:
Op vrijdag 7 september 2007 09:32 schreef Chandler het volgende:

[..]

Mooi lapje code! maar wat bedoel je met de laatste quote?
Dat je code als het een publieke website is liever ook werkt als JS uit staat denk ik, en dat mensen zonder JS deze alert nooit gaan zien
pi_53002426
Haha, duidelijk ja true true..

Heb je iig nog comments op mjin funcies? hoor graag opbouwende kritiek!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_53006189
quote:
Op vrijdag 7 september 2007 12:16 schreef Chandler het volgende:
Haha, duidelijk ja true true..

Heb je iig nog comments op mjin funcies? hoor graag opbouwende kritiek!
Wat doet die returnObj parameter in je functie? Parameters zijn om iets door te geven aan een functie, niet voor return values... bovendien zie ik de functie nergens wachten tot er een resultaat is. Er wordt vanuit gegaan dat er meteen resultaat is, dat werkt heel misschien als je op localhost zit te testen maar dat gaat gegarandeerd mis als de request iets langer duurt, want alles gaat asynchroon en het script blijft daar dus niet op wachten. Met AJAX wil je netjes event based werken, maw: een callbackfunctie definieren die pas aangeroepen wordt als alle data ook daadwerkelijk binnen is. Als je dat niet doet heb je (zeker bij meerdere ajax calls door elkaar die van elkaar afhankelijk zijn) grote kans op een zeer instabiele applicatie die moeilijk tot onmogelijk te debuggen is. Been there, done that, got the t-shirt....

Tip: ga niet zelf het wiel opnieuw uitvinden maar gebruik een goede kant en klare AJAX library. AJAX is veel complexer dan de meesten denken en het vereist een fundamenteel andere denkwijze; met gewoon standaard procedureel programmeren (wat jij hier doet) kom je er echt niet.
pi_53006587
Hoi Farenji, ik begrijp je dat je zegt dat je het wiel niet opnieuw moet uitvinden, dat wordt zovaak gezegd maar als we het wiel nooit verder zouden uitvinden waren raceauto's nog steeds zo sloom als slakken

Maar om even inhoudenlijk op je reactie m.b.t. de javascript code in te gaan. die returnOBJ wordt gebruikt om de callbackfunctie aan te geven. Dit omdat ik de standaard submit en get functie wil gebruiken met apparte functies voor het 'benutten' van de output van het script!

Ik heb vanmiddag de scripting weer deels aangepast omdat er toch aardig wat foutjes in zaten. Deze moeten als het goed is nu ook opgelost zijn!.

Verder nog tips qua preformance? ennuh het loopt nu niet meer op localhost hoor maar op http://www.bruggema.nl/ajaxtest
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_53018900
quote:
Op vrijdag 7 september 2007 09:32 schreef Chandler het volgende:
Mooi lapje code! maar wat bedoel je met de laatste quote? Ik heb de code trouwens aangepast
De spelling "brouwser"
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_53019685
quote:
Op vrijdag 7 september 2007 23:09 schreef SuperRembo het volgende:

[..]

De spelling "brouwser"
"ondersteund"
pi_53023941
Haha, ja ik ben nooit geslaagd voor mijn Nederlands maar nu nog inhoudelijk commentaar op mijn scripting?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_53028284
quote:
Op vrijdag 7 september 2007 15:00 schreef Chandler het volgende:
Hoi Farenji, ik begrijp je dat je zegt dat je het wiel niet opnieuw moet uitvinden, dat wordt zovaak gezegd maar als we het wiel nooit verder zouden uitvinden waren raceauto's nog steeds zo sloom als slakken
Als bij elke auto de motor opnieuw uitgevonden zou worden zouden auto's 120 miljoen per stuk kosten en ze zouden voor geen meter rijden.
quote:
Maar om even inhoudenlijk op je reactie m.b.t. de javascript code in te gaan. die returnOBJ wordt gebruikt om de callbackfunctie aan te geven. Dit omdat ik de standaard submit en get functie wil gebruiken met apparte functies voor het 'benutten' van de output van het script!
Hmm in je code die je hier postte dus niet. Daar wordt het resultaat meteen na de ajaxcall in returnObj gestopt en dat was niet handig. Zoals je het nu doet is het wel beter.
pi_53032432
Je hebt gelijk over de kosten maar in mijn geval gaat het om moeite hé..

Vind het zelf wel een aardig gelukt stukje en zal het ook gaan gebruiken voor mijn nieuwe sites
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_53033923
quote:
Op zaterdag 8 september 2007 08:42 schreef Chandler het volgende:
maar nu nog inhoudelijk commentaar op mijn scripting?
* create_http_object probeert voor Firefox eerst al die ActiveX dingen te maken (die natuurlijk niet lukken), pas daarna wordt XMLHttpRequest() aangeroepen. Beetje zonde.
* De parameter returnOBJ returnt niets en is geen object, foute naam dus.
* ajaxSubmit en ajaxGet controleren of create_http_object wel gelukt is en geven dan een melding. Die melding geeft de functie create_http_object zelf ook al.
* Er zit wat dubbele code in, kan vast wel efficienter
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_53035392
quote:
Op zaterdag 8 september 2007 18:45 schreef SuperRembo het volgende:
* create_http_object probeert voor Firefox eerst al die ActiveX dingen te maken (die natuurlijk niet lukken), pas daarna wordt XMLHttpRequest() aangeroepen. Beetje zonde.
Dus eingelijk die XMLHttpRequest eerst proberen en daarna de rest? (zonder controle brouwser!)
quote:
* De parameter returnOBJ returnt niets en is geen object, foute naam dus.
Klopt, heb ik veranderd in stateFunction
quote:
* ajaxSubmit en ajaxGet controleren of create_http_object wel gelukt is en geven dan een melding. Die melding geeft de functie create_http_object zelf ook al.
Dus eingeljik zou ik beter de functie notifyNoAjax(); in create_http_object kunnen zetten?
quote:
* Er zit wat dubbele code in, kan vast wel efficienter
Zou je mij even wat in de richting kunnen duwen van de inefficiente code?

[/quote]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_53036009
quote:
Op zaterdag 8 september 2007 19:52 schreef Chandler het volgende:
Dus eingelijk die XMLHttpRequest eerst proberen en daarna de rest? (zonder controle brouwser!)
Dat zou al beter zijn. Het kan nog mooier (code van Crisp als ik 't goed heb):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
if (!window.XMLHttpRequest) 
{
   window.XMLHttpRequest = function() 
   {
      var types = [
         'Microsoft.XMLHTTP',
         'MSXML2.XMLHTTP.5.0',
         'MSXML2.XMLHTTP.4.0',
         'MSXML2.XMLHTTP.3.0',
         'MSXML2.XMLHTTP'   
      ];

      for (var i = 0; i < types.length; i++) 
      {
         try 
         {
            return new ActiveXObject(types[i]);
         } 
         catch(ex) {}
      }
      throw "XMLHttpRequest not supported.";
   }
}


Dan kan je gewoon overal "var request = new XMLHttpRequest()" gebruiken, ook in IE5/6. Als een browser het echt niet ondersteunt geeft ie een error (XMLHttpRequest not supported), tja, met zo'n ouwe browser moet je niet zeuren ;)
quote:
Zou je mij even wat in de richting kunnen duwen van de inefficiente code?
1
2
3
4
5
6
7
8
if (data != "")
{
   xmlHttp.open('GET', url + data + "&cache=" + saveDate.getTime(), true);
}
else
{
   xmlHttp.open('GET', url + "?cache=" + saveDate.getTime(), true);
}


1
2
3
4
5
6
7
8
9
10
if (data != "")
{
   url += data + "&";
}
else
{
   url += "?";
}
url += "cache=" + saveDate.getTime();
xmlHttp.open('GET', url, true);


(Kan natuurlijk korter en efficienter, maar dit is een voorbeeld)
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  zondag 9 september 2007 @ 10:18:42 #182
37634 wobbel
Da WoBBeL King
pi_53045056
1
2
3
4
5
6
7
8
9
10
function evalRequest(value) {
     var xmlhttp = new XMLHttpRequest();
     xmlhttp.onreadystatechange = function() {
          if (xmlhttp.readyState==4 && xmlhttp.status==200) {
               eval(xmlhttp.responseText);
          }
     }
     xmlhttp.open("GET", "ajax_check.php?request=barcodecheck&barcode="+value,true);
     xmlhttp.send(null);
 }


de regel met eval ( ) geeft een foutmnelding in IE7 dat er een Syntaxfout is.

Ik gebruik btw eval() omdat ajax_check.php een javascript code teruggeeft
pi_53045395
Wat staat er in xmlhttp.responseText?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  zondag 9 september 2007 @ 11:04:03 #184
37634 wobbel
Da WoBBeL King
pi_53045461
quote:
Op zondag 9 september 2007 10:56 schreef SuperRembo het volgende:
Wat staat er in xmlhttp.responseText?
daar hebben we het probleem al, ajax_check werd gecached nu niet meer

DAnk
pi_53045523
quote:
Op vrijdag 7 september 2007 14:44 schreef Farenji het volgende:
Tip: ga niet zelf het wiel opnieuw uitvinden maar gebruik een goede kant en klare AJAX library.
Voor productie, ja. Voor het aanleren daarentegen valt er heel wat voor te zeggen om een deel van het wiel zelf uit te vinden (en zo complex was AJAX nou ook weer niet).
"If you are depressed you shouldn't be in C major!" - Rick Beato
  zondag 9 september 2007 @ 11:35:40 #186
37634 wobbel
Da WoBBeL King
pi_53045836
- deze was te stom -
  zondag 9 september 2007 @ 23:26:52 #187
37634 wobbel
Da WoBBeL King
pi_53062247
Ik ben echt een held in javascript...en daarom lukt mij het een en ander ook niet.

Ik heb een soort van intranetje geknutseld, waarmee ik computerreparaties kan aanmelden. De PC krijgt een barcode en met die barcode kunnen we de gegevens van de klant meteen opvragen.

1e fout: als ik eerst goede code doe, en dan foute laat ie de rijen van de goede code staan (mag dus niet)
2e fout: als ik meerdere malen een goede code invul blijven de rijen zich opstapelen

Hieronder het een en ander uitgelegd in een super helder filmpje klik op de praatballonnetjes om door te gaan => http://www.dumpzooi.nl/intranet/intranet/intranet.html
De pagina waarop jullie het kunnen testen Werkt om een of andere duistere reden alleen in IE: http://www.dumpzooi.nl/intranet/

De PHP code (in princiepe niet relevant voor dit verhaal, is alleen om te testen):
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
<?php
# fok verwijdert wat backslashes..
header('Cache-Control: no-cache');
header('Pragma: no-cache');

if ( 
$_GET['barcode'] )
{

    if ( 
$_GET['barcode'] == "CO-1337" )
    {

        echo 
"insRow(1,'  <img src="images/toptoright.gif" />Naam','<input type="text" name="textfield2" id="textfield2" value="Smit" />')";
        echo 
"rn";
        echo 
"insRow(2,'  <img src="images/toptoright.gif" />Telefoonnummer','<input type="text" name="textfield2" id="textfield2" value="074-23663593" />')";
        echo 
"rn";
        echo 
"barcodeveldColor('found')";

    
    }
    elseif ( 
$_GET['barcode'] == "CO-1336" )
    {

        echo 
"insRow(1,'  <img src="images/toptoright.gif" />Naam','<input type="text" name="textfield2" id="textfield2" value="Janssen" />')";
        echo 
"rn";
        echo 
"insRow(2,'  <img src="images/toptoright.gif" />Telefoonnummer','<input type="text" name="textfield2" id="textfield2" value="074-26663593" />')";
        echo 
"rn";
        echo 
"barcodeveldColor('found')";

    
    }
    else
    {
    
        echo 
"barcodeveldColor('notfound')";
    
    }

}
else
{

    echo 
"barcodeveldColor('notfound')";

}
?>
pi_53065855
quote:
Op zondag 9 september 2007 23:26 schreef wobbel het volgende:
1e fout: als ik eerst goede code doe, en dan foute laat ie de rijen van de goede code staan (mag dus niet)
2e fout: als ik meerdere malen een goede code invul blijven de rijen zich opstapelen
Dat lijkt me logisch als je nooit rijden verwijderd...
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  maandag 10 september 2007 @ 09:39:15 #189
37634 wobbel
Da WoBBeL King
pi_53067280
quote:
Op maandag 10 september 2007 07:31 schreef SuperRembo het volgende:

[..]

Dat lijkt me logisch als je nooit rijden verwijderd...
maar hoe controleer ik of die rijen al bestaan dan? Ik weet niet waar ik moet beginnen en google geeft me alleen de code om de rijen te verwijderen...
pi_53069998
Dat kan op allerlei manieren. Je kan de rows collection van de table gerbruiken, je kunt zelf bijhouden welke rows je hebt toegevoegd. Je kunt de rijen die je zelf toevoegt een class geven waar je ze aan kan herkennen. Als je altijd dezelfde velden laat zien dan kan je de velden leeg maken of verbergen, via ajax stuur je alleen de waarden van de velden, niet de hele HTML van de velden zelf.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  maandag 10 september 2007 @ 19:52:07 #191
136730 PiRANiA
All thinking men are atheists.
pi_53079403
Ey,
Weet iemand waar dat gifje te vinden is uit firefox dat je te zien krijgt als je op het laden van het tebblad wacht?
Ik heb die nodig voor een ajax-site...
pi_53080166
quote:
Op maandag 10 september 2007 19:52 schreef PiRANiA het volgende:
Ey,
Weet iemand waar dat gifje te vinden is uit firefox dat je te zien krijgt als je op het laden van het tebblad wacht?
Ik heb die nodig voor een ajax-site...
Bedoel je chrome/classic/skin/classic.jar/browser/Thrubber.gif?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  maandag 10 september 2007 @ 20:50:21 #193
37634 wobbel
Da WoBBeL King
pi_53080755
quote:
Op maandag 10 september 2007 20:22 schreef SuperRembo het volgende:

[..]

Bedoel je chrome/classic/skin/classic.jar/browser/Thrubber.gif?
hoe extract je die jar?
pi_53081409
quote:
Op maandag 10 september 2007 20:50 schreef wobbel het volgende:

[..]

hoe extract je die jar?
Gewoon met winzip/winrar/...
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  dinsdag 11 september 2007 @ 07:50:36 #195
136730 PiRANiA
All thinking men are atheists.
pi_53088609
www.ajaxload.info daar heb ik hem gevonden
handige site
  vrijdag 14 september 2007 @ 23:29:28 #196
37634 wobbel
Da WoBBeL King
pi_53186323
Waarom werkt onderstaande NIET in firefox maar wel in IE7
(het gaat om het Ja / Nee verhaal op deze pagina -> http://www.dumpzooi.nl/intranet/

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
<script>
function Kiekeboe_a ()
{
   
   if ( document.getElementById ( 'Barcode' ).value == 'y' )
   {
      document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeKiekeboe';
      document.getElementById ( 'KlantVeld' ).className = 'KlantVerstopt';
   }
   else
   {
   
      document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeVerstopt';
      document.getElementById ( 'KlantVeld' ).className = 'KlantKiekeboe';
   }

   
}

function Kiekeboe_b ()
{
   
   if ( document.getElementById ( 'Barcode' ).value == 'n' )
   {
      document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeKiekeboe';
      document.getElementById ( 'KlantVeld' ).className = 'KlantVerstopt';
   }
   else
   {
      document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeVerstopt';
      document.getElementById ( 'KlantVeld' ).className = 'KlantKiekeboe';
   }
   
}
</script>


Met volgende HTML codes:

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
<div id="content">
<h2>Reparatie aanmelden</h2>
<form action="#SITE_URL/task_add.php" method="post" name="TaskAdd" id="TaskAdd">
<table width="100%" border="0" cellspacing="0" cellpadding="1">
  <tr>
    <td width="50%" align="left" valign="top">Bevat de PC een barcode?</td>
    <td width="50%" align="left" valign="top">Ja <input type="radio" name="Barcode" id="radio" value="y" onclick="Kiekeboe_a()" /> Nee <input type="radio" name="Barcode" id="radio2" value="n" onclick="Kiekeboe_b()" /></td>
  </tr>
  <tr id="BarcodeVeld" class="BarcodeVerstopt">
   <td colspan="2">
    
    <table width="100%" border="0" cellspacing="0" cellpadding="0" id="ReparatieTabel">
      <tr>
        <td width="50%" align="left" valign="top">  <img src="#SITE_URL/include/images/toptoright.gif" />Barcode</td>
        <td width="50%" align="left" valign="top"><input type="text" name="BarcodeInputVeld" id="BarcodeInputVeld" onBlur="BarcodeCheck(this.value)" style="border: solid #7f9db9 1px;" /> <img src="#SITE_URL/include/images/reload.gif" onclick="BarcodeCheck(document.getElementById ( 'BarcodeInputVeld' ).value)" /></td>
      </tr>
    </table>    
    
    </td>
  </tr>
  <tr id="KlantVeld" class="KlantVerstopt">
    <td colspan="2">
    
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="50%" align="left" valign="top">  <img src="#SITE_URL/include/images/toptoright.gif" />Naam</td>
        <td width="50%" align="left" valign="top"><input type="text" name="textfield2" id="textfield2" /></td>
      </tr>
      <tr>
        <td width="50%" align="left" valign="top">  <img src="#SITE_URL/include/images/toptoright.gif" />Telefoonnummer</td>
        <td width="50%" align="left" valign="top"><input type="text" name="textfield3" id="textfield3" /></td>
      </tr>
    </table>
    
    </td>
  </tr>
 <tr>
    <td align="left" valign="top" colspan="2"> </td>
  </tr>
  <tr>
    <td align="center" valign="top" colspan="2"><input type="image" name="imageField" src="#SITE_URL/include/images/buttons/task_toevoegen.jpg"></td>
  </tr>
</table>


<input type="hidden" name="sid" value="8f99d96f935336c7b8efb70944ff3105" /></form>
</div>
pi_53186606
Je hebt geen element met id="Barcode", wel met name="Barcode". getElementById("Barcode") levert dus niets op. Alleen IE zoekt bij getElementById niet alleen op id maar ook op name.

(Die fout had je makkelijk zelf kunnen vinden als je naar de foutmelding had gekeken die Firefox geeft)
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  zaterdag 15 september 2007 @ 19:11:20 #198
37634 wobbel
Da WoBBeL King
pi_53201957
quote:
Op vrijdag 14 september 2007 23:38 schreef SuperRembo het volgende:
Je hebt geen element met id="Barcode", wel met name="Barcode". getElementById("Barcode") levert dus niets op. Alleen IE zoekt bij getElementById niet alleen op id maar ook op name.

(Die fout had je makkelijk zelf kunnen vinden als je naar de foutmelding had gekeken die Firefox geeft)
FF gaf me niks of ik ben blind

maargoed, opgelost

BTW, kan dit niet VEEL korter?

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
function Kiekeboe_a ()
{
   
   if ( document.getElementById ( 'Barcode' ).value == 'y' )
   {
      document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeKiekeboe';
      document.getElementById ( 'KlantVeld' ).className = 'KlantVerstopt';
   }
   else
   {
   
      document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeVerstopt';
      document.getElementById ( 'KlantVeld' ).className = 'KlantKiekeboe';
   }

   
}

function Kiekeboe_b ()
{
   
   if ( document.getElementById ( 'Barcode' ).value == 'n' )
   {
      document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeKiekeboe';
      document.getElementById ( 'KlantVeld' ).className = 'KlantVerstopt';
   }
   else
   {
      document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeVerstopt';
      document.getElementById ( 'KlantVeld' ).className = 'KlantKiekeboe';
   }
   
}


[ Bericht 33% gewijzigd door wobbel op 15-09-2007 19:29:30 ]
pi_53204759
Beide functies doen eigenlijk hetzelfde: kijken naar de status van de radiobuttons en dan een van de twee velden tonen. Dus dat kan makkelijk in 1 functie.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  zondag 16 september 2007 @ 14:22:29 #200
37634 wobbel
Da WoBBeL King
pi_53218305
quote:
Op zaterdag 15 september 2007 21:07 schreef SuperRembo het volgende:
Beide functies doen eigenlijk hetzelfde: kijken naar de status van de radiobuttons en dan een van de twee velden tonen. Dus dat kan makkelijk in 1 functie.
dan zou alleen onderstaande toch ook moeten werken? Dat ik bij beide radiobuttons zelfde functie aanroep? (alleen dat doet ie dus niet)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function Kiekeboe_a ()
{
   
   if ( document.getElementById ( 'Barcode' ).value == 'y' )
   {
      document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeKiekeboe';
      document.getElementById ( 'KlantVeld' ).className = 'KlantVerstopt';
   }
   else
   {
   
      document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeVerstopt';
      document.getElementById ( 'KlantVeld' ).className = 'KlantKiekeboe';
   }

   
}
pi_53218519
quote:
Op zondag 16 september 2007 14:22 schreef wobbel het volgende:

[..]

dan zou alleen onderstaande toch ook moeten werken? Dat ik bij beide radiobuttons zelfde functie aanroep? (alleen dat doet ie dus niet)
[ code verwijderd ]
Ze doen hetzelfde, ze zijn niet exact hetzelfde (vergelijking met 'y' en 'n'). Doe de HTML erbij en het is, zoals SuperRembo zegt, makkelijk genoeg in 1 functie te plaatsen.
"If you are depressed you shouldn't be in C major!" - Rick Beato
  zondag 16 september 2007 @ 14:35:10 #202
37634 wobbel
Da WoBBeL King
pi_53218641
quote:
Op zondag 16 september 2007 14:29 schreef Litpho het volgende:

[..]

Ze doen hetzelfde, ze zijn niet exact hetzelfde (vergelijking met 'y' en 'n'). Doe de HTML erbij en het is, zoals SuperRembo zegt, makkelijk genoeg in 1 functie te plaatsen.
Jups, maar ik heb het al heel veel geprobeerd...maar JS is niet hetzelfde als 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
<div id="content">
<h2>Reparatie aanmelden</h2>
<form action="#SITE_URL/task_add.php" method="post" name="TaskAdd" id="TaskAdd">
<table width="100%" border="0" cellspacing="0" cellpadding="1">
  <tr>
    <td width="50%" align="left" valign="top">Bevat de PC een barcode?</td>
    <td width="50%" align="left" valign="top">Ja <input type="radio" name="Barcode" id="radio" value="y" onclick="Kiekeboe_a()" /> Nee <input type="radio" name="Barcode" id="radio2" value="n" onclick="Kiekeboe_b()" /></td>
  </tr>
  <tr id="BarcodeVeld" class="BarcodeVerstopt">
   <td colspan="2">
    
    <table width="100%" border="0" cellspacing="0" cellpadding="0" id="ReparatieTabel">
      <tr>
        <td width="50%" align="left" valign="top">  <img src="#SITE_URL/include/images/toptoright.gif" />Barcode</td>
        <td width="50%" align="left" valign="top"><input type="text" name="BarcodeInputVeld" id="BarcodeInputVeld" onBlur="BarcodeCheck(this.value)" style="border: solid #7f9db9 1px;" /> <img src="#SITE_URL/include/images/reload.gif" onclick="BarcodeCheck(document.getElementById ( 'BarcodeInputVeld' ).value)" /></td>
      </tr>
    </table>    
    
    </td>
  </tr>
  <tr id="KlantVeld" class="KlantVerstopt">
    <td colspan="2">
    
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="50%" align="left" valign="top">  <img src="#SITE_URL/include/images/toptoright.gif" />Naam</td>
        <td width="50%" align="left" valign="top"><input type="text" name="textfield2" id="textfield2" /></td>
      </tr>
      <tr>
        <td width="50%" align="left" valign="top">  <img src="#SITE_URL/include/images/toptoright.gif" />Telefoonnummer</td>
        <td width="50%" align="left" valign="top"><input type="text" name="textfield3" id="textfield3" /></td>
      </tr>
    </table>
    
    </td>
  </tr>
 <tr>
    <td align="left" valign="top" colspan="2"> </td>
  </tr>
  <tr>
    <td align="center" valign="top" colspan="2"><input type="image" name="imageField" src="#SITE_URL/include/images/buttons/task_toevoegen.jpg"></td>
  </tr>
</table>


<input type="hidden" name="sid" value="8f99d96f935336c7b8efb70944ff3105" /></form>
</div>
pi_53218870
quote:
Op zondag 16 september 2007 14:22 schreef wobbel het volgende:

[..]

dan zou alleen onderstaande toch ook moeten werken? Dat ik bij beide radiobuttons zelfde functie aanroep? (alleen dat doet ie dus niet)
[ code verwijderd ]
Je moet kijken naar welke radiobutton geselecteerd is, dat kan met de checked property. Je moet niet kijken naar de value van een input-radio element, want die verandert niet.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_53219072
quote:
Op zondag 16 september 2007 14:42 schreef SuperRembo het volgende:

[..]

Je moet kijken naar welke radiobutton geselecteerd is, dat kan met de checked property. Je moet niet kijken naar de value van een input-radio element, want die verandert niet.
Tenzij je kiekeboe aanroept met this als parameter, dan krijg je wel de waarde mee van de specifieke radiobutton (ipv de geselecteerde waarde van de radiobuttongroup) en bij radiobuttons mag je er in een onclick vanuitgaan dat hij checked is.

1
2
3
4
5
6
7
8
9
10
11
12
function Kiekeboe(obj) {
   if ( obj.value == 'y' )
   {
      document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeKiekeboe';
      document.getElementById ( 'KlantVeld' ).className = 'KlantVerstopt';
   }
   else
   {
      document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeVerstopt';
      document.getElementById ( 'KlantVeld' ).className = 'KlantKiekeboe';
   }
}

1
2
3
4
<td width="50%" align="left" valign="top">
  Ja <input type="radio" name="Barcode" id="radio" value="y" onclick="Kiekeboe(this)" />
  Nee <input type="radio" name="Barcode" id="radio2" value="n" onclick="Kiekeboe(this)" />
</td>
"If you are depressed you shouldn't be in C major!" - Rick Beato
  zondag 16 september 2007 @ 17:16:43 #205
37634 wobbel
Da WoBBeL King
pi_53222574
quote:
Op zondag 16 september 2007 14:50 schreef Litpho het volgende:

[..]

Tenzij je kiekeboe aanroept met this als parameter, dan krijg je wel de waarde mee van de specifieke radiobutton (ipv de geselecteerde waarde van de radiobuttongroup) en bij radiobuttons mag je er in een onclick vanuitgaan dat hij checked is.
[ code verwijderd ]


[ code verwijderd ]
Kijk eens aan, daar heb ik wat aan. Code + uitleg
  zondag 16 september 2007 @ 18:17:44 #206
37634 wobbel
Da WoBBeL King
pi_53223923
quote:
Op maandag 10 september 2007 11:58 schreef SuperRembo het volgende:
Dat kan op allerlei manieren. Je kan de rows collection van de table gerbruiken, je kunt zelf bijhouden welke rows je hebt toegevoegd. Je kunt de rijen die je zelf toevoegt een class geven waar je ze aan kan herkennen. Als je altijd dezelfde velden laat zien dan kan je de velden leeg maken of verbergen, via ajax stuur je alleen de waarden van de velden, niet de hele HTML van de velden zelf.
als ik dan een row toevoeg met JS, hoe geef ik dan een class mee? en dan nog, hoe verwijder ik dan een rij met een bepaalde class?

Ik heb momenteel de onderstaande code om rijen in te voegen:

1
2
3
4
5
6
7
8
9
10
function insRow (row, value1, value2)
{

   var x         =   document.getElementById('ReparatieTabel').insertRow(row)
   var y         =   x.insertCell(0)
   var z         =   x.insertCell(1)
   y.innerHTML      =   value1
   z.innerHTML      =   value2

}
  maandag 17 september 2007 @ 09:35:51 #207
12880 CraZaay
prettig gestoord
pi_53236941
quote:
Op zondag 16 september 2007 18:17 schreef wobbel het volgende:

[..]

als ik dan een row toevoeg met JS, hoe geef ik dan een class mee?
Je maakt me niet wijs dat dit niet binnen 5 seconden te vinden is op Google:

1element.className = 'myclass';
  maandag 17 september 2007 @ 11:47:21 #208
37634 wobbel
Da WoBBeL King
pi_53240015
quote:
Op maandag 17 september 2007 09:35 schreef CraZaay het volgende:

[..]

Je maakt me niet wijs dat dit niet binnen 5 seconden te vinden is op Google:
[ code verwijderd ]
waar vind je dat allemaal? Ik zou namelijk ook graag willen weten hoe je de id="" instelt van een row die je toevoegt en ik ben nu dus serieus al aan het googlen op allerlei termen
pi_53242532
id property al geprobeerd?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  maandag 17 september 2007 @ 17:39:05 #210
12880 CraZaay
prettig gestoord
pi_53248374
quote:
Op maandag 17 september 2007 13:37 schreef SuperRembo het volgende:
id property al geprobeerd?


Wat hij zegt:

1element.id = 'myId';
pi_53298747
hoe kan je uitrekenen hoelang een functie erover doet? graag in milliseconden.
ah. na een half uur zoeken toch gevonden:
http://www.peachpit.com/articles/article.aspx?p=31567&seqNum=2

[ Bericht 58% gewijzigd door SlimShady op 19-09-2007 13:48:13 ]
  vrijdag 21 september 2007 @ 12:22:49 #212
136730 PiRANiA
All thinking men are atheists.
pi_53353060
Hoe kan ik wat ik van mijn AJAX terugkrijg als script laten uitvoeren?
pi_53353200
quote:
Op vrijdag 21 september 2007 12:22 schreef PiRANiA het volgende:
Hoe kan ik wat ik van mijn AJAX terugkrijg als script laten uitvoeren?
eval().
"If you are depressed you shouldn't be in C major!" - Rick Beato
  vrijdag 21 september 2007 @ 16:17:11 #214
136730 PiRANiA
All thinking men are atheists.
pi_53359443
quote:
Op vrijdag 21 september 2007 12:27 schreef Litpho het volgende:

[..]

eval().
if(xmlHttp.readyState==4)
{
eval(xmlHttp.responseText);
}
?
  vrijdag 21 september 2007 @ 16:54:02 #215
12880 CraZaay
prettig gestoord
pi_53360363
quote:
Op vrijdag 21 september 2007 12:22 schreef PiRANiA het volgende:
Hoe kan ik wat ik van mijn AJAX terugkrijg als script laten uitvoeren?
eval idd, of gewoon lekker een framework gebruiken. Ik blijf me afvragen waarom iedereen steeds het wiel opnieuw wil uitvinden.
  vrijdag 21 september 2007 @ 20:23:32 #216
37634 wobbel
Da WoBBeL King
pi_53365391
quote:
Op vrijdag 21 september 2007 12:22 schreef PiRANiA het volgende:
Hoe kan ik wat ik van mijn AJAX terugkrijg als script laten uitvoeren?
idd met eval ();

let wel op dat je tekst ook moet parsen met document.write ();
pi_53366018
quote:
Op vrijdag 21 september 2007 20:23 schreef wobbel het volgende:
let wel op dat je tekst ook moet parsen met document.write ();
Wat bedoel je?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  vrijdag 21 september 2007 @ 21:14:37 #218
37634 wobbel
Da WoBBeL King
pi_53366745
quote:
Op vrijdag 21 september 2007 20:45 schreef SuperRembo het volgende:

[..]

Wat bedoel je?
stel je ajax request roept check.php aan.
check.php geeft een waarde terug die je op je scherm uitpoept. (bijv "Henk Jan")
als je dat nu alsnog wilt uitpoepen moet je er het volgende van maken: document.write ('Henk Jan');

omdat eval ( ) "Henk Jan" als een commando of functie gaat inzien
pi_53367037
Ja, dat spreekt voor zich. "Henk Jan" is geen javascript dus dat kan je niet als javascript uitvoeren.

document.write is soooooo 20th centrury.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_53476381
Ik zit met een vraag omdat ik iets niet voor elkaar krijg.

Ik heb een script voor ajax search suggest gedownloaded en wilde deze aanpassen zodat het script meerdere search boxjes aankan dus niet voor ieder boxje een appart script hoef te schrijven.

http://www.DynamicAJAX.com

Nu heb ik de html en javascript als volgt aangepast

HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<form id="frmSearch" action="">
    <input type="text" id="field1_txtSearch" name="field1_txtSearch" alt="Search Criteria" onkeyup="searchSuggest('field1');" autocomplete="off" />
    <input type="submit" id="cmdSearch" name="cmdSearch" value="Search" alt="Run Search" /><br />
    <div id="field1_search_suggest"></div>
<input type="hidden" name="sid" value="2fe620ab83006b3ecb3f005b830275d4" /></form>
<form id="frmSearch" action="">
    <input type="text" id="field2_txtSearch" name="field2_txtSearch" alt="Search Criteria" onkeyup="searchSuggest('field2');" autocomplete="off" />
    <input type="submit" id="cmdSearch" name="cmdSearch" value="Search" alt="Run Search" /><br />
    <div id="field2_search_suggest"></div>
<input type="hidden" name="sid" value="2fe620ab83006b3ecb3f005b830275d4" /></form>
<form id="frmSearch" action="">
    <input type="text" id="field3_txtSearch" name="field3_txtSearch" alt="Search Criteria" onkeyup="searchSuggest('field3');" autocomplete="off" />
    <input type="submit" id="cmdSearch" name="cmdSearch" value="Search" alt="Run Search" /><br />
    <div id="field3_search_suggest"></div>
<input type="hidden" name="sid" value="2fe620ab83006b3ecb3f005b830275d4" /></form>
<form id="frmSearch" action="">
    <input type="text" id="field4_txtSearch" name="field4_txtSearch" alt="Search Criteria" onkeyup="searchSuggest('field4');" autocomplete="off" />
    <input type="submit" id="cmdSearch" name="cmdSearch" value="Search" alt="Run Search" /><br />
    <div id="field4_search_suggest"></div>
>/form>


JS
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
var searchReq = create_http_object(); // (eigen werkende xmlhttp func)

//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest(field) 
{
    if (searchReq.readyState == 4 || searchReq.readyState == 0) 
    {
        var str = escape(document.getElementById(field + '_txtSearch').value);
        searchReq.open("GET", 'searchSuggest.php?search=' + str, true);
        searchReq.onreadystatechange = handleSearchSuggest(field); 
        searchReq.send(null);
    }      
}

//Called when the AJAX response is returned.
function handleSearchSuggest(field) 
{
    if (searchReq.readyState == 4) 
    {
        var ss = document.getElementById(field + '_search_suggest')
        ss.innerHTML = '';
        var str = searchReq.responseText.split("n");

        for (i = 0; i < str.length - 1; i++) 
        {
            //Build our element string.  This is cleaner using the DOM, but
            //IE doesn't support dynamically added attributes.
            var suggest = '<div onmouseover="javascript:suggestOver(this, '' + field + '');" ';
               suggest += 'onmouseout="javascript:suggestOut(this, '' + field + '');" ';
               suggest += 'onclick="javascript:setSearch(this.innerHTML, '' + field + '');" ';
               suggest += 'class="suggest_link">' + str[i] + '</div>';

            ss.innerHTML += suggest;
        }
    }
}

//Mouse over function
function suggestOver(div_value, field) 
{
    div_value.className = 'suggest_link_over';
}
//Mouse out function
function suggestOut(div_value, field) 
{
    div_value.className = 'suggest_link';
}
//Click function
function setSearch(value, field) 
{
    document.getElementById(field + '_txtSearch').value = value;
    document.getElementById(field + '_search_suggest').innerHTML = '';
}


Helaas krijg ik continue fouten op de eerste searchReq.readyState. Alleen zie ik niet waar deze fout in zit? iemand die het ziet? of een eventuele oplossing heeft?

[ Bericht 35% gewijzigd door Chandler op 26-09-2007 00:06:13 (ubb foutje) ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_53476976
Deze regel is fout
1    searchReq.onreadystatechange = handleSearchSuggest(field); 


onreadystatechange moet een functie zijn die kan worden uitgevoerd op het moment dat de readystate verandert. Jij voert meteen handleSearchSuggest(field) uit (dan is send() nog niet eens uitgevoerd), waardoor searchReq.onreadystatechange de waarde undefined krijgt.

Eenvoudigste oplossing:
1    searchReq.onreadystatechange = function(){ handleSearchSuggest(field);} 


Dit wordt vaak fout gedaan :X
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_53478791
quote:
Op woensdag 26 september 2007 00:37 schreef SuperRembo het volgende:
Dit wordt vaak fout gedaan
Het wachten is nu op Crazaay die je komt vertellen dat je gewoon een framework had moeten gebruiken .
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_53478952
Tnx SR en nee ik ga geen framework gebruiken, wil lekker zelf ontdekken hoe zaken werken!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_53485057
Volgende vraag dan maar quote uit CSS topic

Een voorbeeld.

1
2
3
4
<form>
Titel: <input type="text" name="woei" onClick="functie();"><br />
<div id="zoekveld"></div>
<input type="hidden" name="sid" value="2fe620ab83006b3ecb3f005b830275d4" /><input type="hidden" name="sid" value="2fe620ab83006b3ecb3f005b830275d4" /><input type="hidden" name="sid" value="2fe620ab83006b3ecb3f005b830275d4" /><input type="hidden" name="sid" value="2fe620ab83006b3ecb3f005b830275d4" /></form>


Nu is de begin positie van 'zoekveld' goed hoor, maar wil dat deze over de onderstaande velden valt dus niet de pagina verbreed maar eeder 'zweeft' oid..

Is de inhoud leeg? dan zie je niets
Is de inhoud gevuld dan zie ik deze div container over andere velden heen (zoals een menu oid) hoe krijg ik dat voor elkaar? iemand een voorbeeld?

-edit-

vervolg,

Heb nu het volgende aangepast en krijg nu de box achter de onderliggende elementen/teksten

1
2
3
4
5
6
7
                        .suggest_box {
                            position: relative;
                            width: 250px; 
                            border: 1px solid black; 
                            display: none;
                            z-index: 999;
                        }      


HTML
1
2
3
4
5
<form id="frmSearch" action="" style="position: absolute; z-index: 4;">
    Gebruiker: <input type="text" id="field4_txtSearch" name="field4_txtSearch" alt="Search Criteria" onkeyup="searchSuggest('username', 'field4');" autocomplete="off" />
    <input type="submit" id="cmdSearch" name="cmdSearch" value="Search" alt="Run Search" /><br />
    <div id="field4_search_suggest" class="suggest_box"></div>
<input type="hidden" name="sid" value="2fe620ab83006b3ecb3f005b830275d4" /></form>


maar de tekst er achter is ook niet alls dit is nog zonder JS ed. Heb nu wel een get en set Position functie gevonden maar hoef daar helaas nog niets mee te doen!

[ Bericht 33% gewijzigd door Chandler op 26-09-2007 14:23:24 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  maandag 8 oktober 2007 @ 11:42:04 #225
37634 wobbel
Da WoBBeL King
pi_53786969
Ik heb ergens op de pagina een <input type="text" name="henk" id="henk" value="onbekend"> staan.

Hoe kan ik nou ergens verderop de de pagina dmv een functie die waarde ("onbekend") opvragen?

1
2
3
4
5
6
function GetValue ( field )
{

   var obj = document.getElementById(field)

}


verder dan dit kom ik niet :P
  maandag 8 oktober 2007 @ 12:41:38 #226
136730 PiRANiA
All thinking men are atheists.
pi_53788445
quote:
Op maandag 8 oktober 2007 11:42 schreef wobbel het volgende:
Ik heb ergens op de pagina een <input type="text" name="henk" id="henk" value="onbekend"> staan.

Hoe kan ik nou ergens verderop de de pagina dmv een functie die waarde ("onbekend") opvragen?
[ code verwijderd ]

verder dan dit kom ik niet
document.getElementById('henk').value
?
pi_53838449
ff een probleempje...
ik ben bezig om een systeempje te maken waarbij details ingevoerd kunnen worden door middel van een uitklapscherm. heb ik op deze manier gemaakt...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
   
function showWorkDetailsPerson(id, pauzes){
   // alle velden tonen
   for(i=1; i<=12; i++){
      veld = document.getElementById('rij_'+i+'_nummer_'+id);
      veld.style.display = 'table-cell';
   }
   
   // alle p velden tonen
   for (i=1; i<=pauzes; i++){
      if (i == 1){
         veld = document.getElementById('rij_'+id+'_'+i);   
         veld.style.display = 'table-cell';
         veld = document.getElementById('rij1_'+id+'_'+i);   
         veld.style.display = 'table-cell';
      }else{
         veld = document.getElementById('rij_'+id+'_'+i);   
         veld.style.display = 'none';
         veld = document.getElementById('rij1_'+id+'_'+i);   
         veld.style.display = 'none';
      }
   }
}


in firefox werkt het goed, in ie krijg ik een fout melding... heel vaag..
de fout zit in lijn 6..
quote:
Error: Could not get the display property. Invalid argument.
Code: 0
wat doe ik verkeerd?
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
  woensdag 10 oktober 2007 @ 16:32:25 #228
136730 PiRANiA
All thinking men are atheists.
pi_53841668
quote:
Op woensdag 10 oktober 2007 14:17 schreef markiemark het volgende:
ff een probleempje...
ik ben bezig om een systeempje te maken waarbij details ingevoerd kunnen worden door middel van een uitklapscherm. heb ik op deze manier gemaakt...
[ code verwijderd ]

in firefox werkt het goed, in ie krijg ik een fout melding... heel vaag..
de fout zit in lijn 6..
[..]

wat doe ik verkeerd?
document.getElementById('rij_'+i+'_nummer_'+id).style.display = 'table-cell';

die?
of

veld ='document.getElementById(rij_'+i+'_nummer_'+id)';
veld.style.display = 'table-cell';

denk ik hoor
pi_53842622
Het zou best eens kunnen dat IE display: table-cell niet kent.
In plaats van style.display = 'table-cell' kan je waarschijnlijk beter style.display = '' gebruiken. Dat zorgt er voor dat de default waarde wordt gebruikt.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_53855283
Ik heb twee multiselects naast elkaar, waarmee waarden van de ene naar de andere multiselectbox gezet kunnen worden. Dit werkt allemaal prima, als dan de rechterkant geselecteerd is, word ook alles keurig uitgelezen.

Maar nou is het de bedoeling dat als er iets in de rechter multiselect staat, hij bij onsubmit gelijk die hele multiselect selecteerd, zonder dat je dat zelf nog eens hoeft te doen. k heb al een aantal scripts geprobeerd, maar tot nog toe geen succes. Het script mag evt ook werken met een checkbox, waarbij je aangeeft of alles geselecteerd word.
minimalist
pi_53857470
quote:
Op woensdag 10 oktober 2007 17:25 schreef SuperRembo het volgende:
Het zou best eens kunnen dat IE display: table-cell niet kent.
In plaats van style.display = 'table-cell' kan je waarschijnlijk beter style.display = '' gebruiken. Dat zorgt er voor dat de default waarde wordt gebruikt.
Ik vind jou lievv..

Dank je wel! Het werkt!
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
pi_53859901
quote:
Op donderdag 11 oktober 2007 07:26 schreef Vlek het volgende:
Maar nou is het de bedoeling dat als er iets in de rechter multiselect staat, hij bij onsubmit gelijk die hele multiselect selecteerd, zonder dat je dat zelf nog eens hoeft te doen. k heb al een aantal scripts geprobeerd, maar tot nog toe geen succes. Het script mag evt ook werken met een checkbox, waarbij je aangeeft of alles geselecteerd word.
Het enige wat je hoeft te doen is door alle options van de select lopen en voor elke option de selected property op true zetten.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_53861195
quote:
Op donderdag 11 oktober 2007 07:26 schreef Vlek het volgende:
Ik heb twee multiselects naast elkaar, waarmee waarden van de ene naar de andere multiselectbox gezet kunnen worden. Dit werkt allemaal prima, als dan de rechterkant geselecteerd is, word ook alles keurig uitgelezen.

Maar nou is het de bedoeling dat als er iets in de rechter multiselect staat, hij bij onsubmit gelijk die hele multiselect selecteerd, zonder dat je dat zelf nog eens hoeft te doen. k heb al een aantal scripts geprobeerd, maar tot nog toe geen succes. Het script mag evt ook werken met een checkbox, waarbij je aangeeft of alles geselecteerd word.
ik heb ooit dit geschreven:
1
2
3
4
5
6
7
function selectAll()
{
   for(i=0; i<document.form1.selectie.options.length; i++)
   {
      document.form1.selectie.options[i].selected = true;   
   }
}


En dat werkt..
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
  donderdag 18 oktober 2007 @ 21:27:04 #234
136730 PiRANiA
All thinking men are atheists.
pi_54018439
document.getElementById('buttonff01cf50fd6b21093bfb5e7d1827b92f').disabled='disabled';

staat ergens in mijn script, maar hoe krijg ik die knop nu weer aan?
pi_54019114
De disabled property is eigenlijk een boolean, je had 'm dus eigenlijk op true moeten zetten. Om 'm weer te enabelen zet je disbled op false.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_54019737
Wat een id trouwens
pi_54021034
quote:
Op donderdag 18 oktober 2007 22:28 schreef super-muffin het volgende:
Wat een id trouwens
hehe idd.. zou wel automatisch gegenereerd zijn adhv session id of zo
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
  vrijdag 19 oktober 2007 @ 07:50:14 #238
136730 PiRANiA
All thinking men are atheists.
pi_54025755
quote:
Op donderdag 18 oktober 2007 23:20 schreef markiemark het volgende:

[..]

hehe idd.. zou wel automatisch gegenereerd zijn adhv session id of zo
true
quote:
Op donderdag 18 oktober 2007 22:02 schreef SuperRembo het volgende:
De disabled property is eigenlijk een boolean, je had 'm dus eigenlijk op true moeten zetten. Om 'm weer te enabelen zet je disbled op false.
ga ik proberen, tnx
pi_54098175
nevermind

[ Bericht 92% gewijzigd door Darkomen op 22-10-2007 22:33:38 ]
pi_54424664
Ik snap iets niet

1
2
3
4
5
function showReact()
{
    x = document.getElementById('react');
    (x.style.display == 'block') ? x.style.display = 'none' : x.style.display = 'block';
}


werkt maar de volgende code weer niet :?

1
2
3
4
5
function showReact()
{
    x = document.getElementById('react').style.display;
    (x == 'block') ? x = 'none' : x = 'block';
}


Waarom werkt de laatste code niet? kan iemand dat uitleggen? :D
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_54425604
in de bovenste is x een verwijzing naar het element 'react'.
bij de onderste code staat x voor de text 'block' of 'none'.
dus het verandert alleen de inhoud van x, ipv wat jij verwacht: het element>attribuut style.display.
pi_54425879
Ah duidelijk, ik dacht dat x dan het gehele element mee zou nemen maar dat is dus niet zo weer wat geleerd
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  woensdag 7 november 2007 @ 12:32:39 #243
12880 CraZaay
prettig gestoord
pi_54426501
quote:
Op woensdag 7 november 2007 12:00 schreef Chandler het volgende:
Ah duidelijk, ik dacht dat x dan het gehele element mee zou nemen maar dat is dus niet zo weer wat geleerd
Dat element "meenemen" wil je juist niet. Je wilt de referentie naar het element gebruiken.
pi_54427369
Daar doelde ik al op CraZaay
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_54427800
Maar dit kan wel:

1
2
3
4
5
function showReact()
{
    x = document.getElementById('react').style;
    (x.display == 'block') ? x.display = 'none' : x.display = 'block';
}


Ik zou 't trouwens zo doen
1    x.display = (x.display == 'none') ? '' : 'none';


Dan maak je beter gebruik van de ?: operator en op deze manier werkt het ook bij bijv een span en table element.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_54477081
Ik heb een vraagje over een stukje script van mij. Het volgende script moet van een XML resultaat een directorie structuur kunnen opbouwen, echter krijg ik na uitlezen gelijk de volgende error

XML data
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 <?xml version="1.0" encoding="iso-8859-1" ?> 
- <nodes>
- <node>
  <name>Documents and Settings</name> 
  <id>C:/Documents and Settings</id> 
  <items>1</items> 
  </node>
- <node>
  <name>Games</name> 
  <id>C:/Games</id> 
  <items>1</items> 
  </node>
- <node>
  <name>MyServer</name> 
  <id>C:/MyServer</id> 
  <items>1</items> etcetcetc


JS script
1
2
3
4
5
6
7
8
9
<?php
        
/* check if HTTP Response Code is 200 (resource found) */
        
if(request.status == 200)
        {
            
/* get data as xml and select only nodes */
            
request.responseXML.getElementsByTagName('nodes')[0].getElementsByTagName('node'); // <-- error
            
x.length;
            
/* no nodes in response - go out from function */
?>


Error melding in FF
1
2
3
Error: [Exception... "Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIDOMHTMLDivElement.removeChild]"  nsresult: "0x80004003 (NS_ERROR_INVALID_POINTER)"  location: "JS frame :: etc/js/tree.js :: completeRequest :: line 118"  data: no]
Source File: etc/js/tree.js
Line: 118


Error melding in IE
1request.responseXML.getElementsByTagName('nodes')[0] is leeg of geen object


Nu is de vraag; waar ga ik de fout in? :D
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_54479811
De foutmelding geeft aan dat er geen "nodes" element bestaat.
Krijg je wel echt xml binnen?
Wat geeft request.responseXML.childNodes.length of request.responseXML.childNodes[0]?

getElementsByTagName geeft alle nodes met de gegeven naam, dus ook dieper gelegen nodes.
x = request.responseXML.getElementsByTagName('nodes')[0].getElementsByTagName('node');
is in dit geval dus hetzelfde als
x = request.responseXML.getElementsByTagName('node');
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_54482473
quote:
Op vrijdag 9 november 2007 13:02 schreef SuperRembo het volgende:
De foutmelding geeft aan dat er geen "nodes" element bestaat.
Krijg je wel echt xml binnen?
Wat geeft request.responseXML.childNodes.length of request.responseXML.childNodes[0]?

getElementsByTagName geeft alle nodes met de gegeven naam, dus ook dieper gelegen nodes.
x = request.responseXML.getElementsByTagName('nodes')[0].getElementsByTagName('node');
is in dit geval dus hetzelfde als
x = request.responseXML.getElementsByTagName('node');
alert(request.responseXML) geeft het XML voorbeeld + natuurlijk wat meer data
request.responseXML.childNodes.length geeft 0
request.responseXML.childNodes[0] geeft null

Jou manier :
request.responseXML.getElementsByTagName('node') geeft een [object]
maar dan krijg ik de volgende error op:

1
2
3
4
5
6
7
8
9
            if(!y)
            {
                with(parent.getElementsByTagName('p')[0]) // <-- error
                {
                    removeChild(lastChild);
                    appendChild(document.createTextNode('No contents found...'));
                }
                return false;
            }
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_54483916
quote:
Op vrijdag 9 november 2007 14:47 schreef Chandler het volgende:
[..]
alert(request.responseXML) geeft het XML voorbeeld + natuurlijk wat meer data
request.responseXML.childNodes.length geeft 0
Dat is vreemd. Stuur je wel een text/xml header? Wat geeft request.getResponseHeader("Content-Type")?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  vrijdag 9 november 2007 @ 16:42:47 #250
136730 PiRANiA
All thinking men are atheists.
pi_54485220
Wie met ienternet explorer snapt wat het hier fout gaat:
http://roostertv.kexx.net/ (onderin)
in FF werkt het wel...
(gaat over AJAX...)
pi_54486242
quote:
Op vrijdag 9 november 2007 15:49 schreef SuperRembo het volgende:

[..]

Dat is vreemd. Stuur je wel een text/xml header? Wat geeft request.getResponseHeader("Content-Type")?
Zo verstuur ik het

1
2
3
4
5
6
header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );  // disable IE caching
header( "Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . " GMT" );
header( "Cache-Control: no-cache, must-revalidate" );
header( "Pragma: no-cache" );

echo('<'.'?xml version="1.0" encoding="iso-8859-1" ?'.'>'."\r\n");


en die request.getResponseHeader("Content-Type")? geeft idd text/html

Hoe is dat mogelijk?

Nu krijg ik text/xml door toevoeging van

1header( "Content-Type: text/xml");


maar dan krijg ik weer een andere error

1
2
3
Regel: 122
Teken: 13
Fout: Type komt niet overeen


Regel 122 is als volgt.

1            parent.appendChild(e['ul']);




en het leuke is dat FF het weer anders aangeeft

1
2
3
Error: [Exception... "Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIDOMHTMLDivElement.removeChild]"  nsresult: "0x80004003 (NS_ERROR_INVALID_POINTER)"  location: "JS frame :: etc/js/tree.js :: completeRequest :: line 121"  data: no]
Source File: etc/js/tree.js
Line: 121


regels 118 t/m 123
1
2
3
4
5
6
                }
                e['ul'].appendChild(e['li']);
            }
            parent.removeChild(parent.getElementsByTagName('p')[0]); <-- 121
            parent.appendChild(e['ul']); <-- 122
        }


[ Bericht 23% gewijzigd door Chandler op 09-11-2007 17:41:27 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_54486533
quote:
Op vrijdag 9 november 2007 16:42 schreef PiRANiA het volgende:
Wie met ienternet explorer snapt wat het hier fout gaat:
http://roostertv.kexx.net/ (onderin)
in FF werkt het wel...
(gaat over AJAX...)
AJAX?

javascript:document.getElementById('adje') waar staat een div met adje?

Je kunt trouwens beter die onload (imho) gewoon onderaan het script zetten.
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_54487874
quote:
Op vrijdag 9 november 2007 17:36 schreef Chandler het volgende:

[..]

Zo verstuur ik het
[ code verwijderd ]

en die request.getResponseHeader("Content-Type")? geeft idd text/html

Hoe is dat mogelijk?
Dat is de default header die php stuurt.
quote:
maar dan krijg ik weer een andere error
Bestaat er wel een element <p>? Is de variable die je propeert te appenden wel een element?

Waarom gebruik je geen JSON, dat werkt zoveel makkelijker in javascript?
quote:
Op vrijdag 9 november 2007 17:46 schreef Chandler het volgende:
Je kunt trouwens beter die onload (imho) gewoon onderaan het script zetten.
Ben ik niet met je eens. De toevoeging "javascript:" in onload en onclick is wel overbodig.
PiRANiA, wat wil je bereiken met het veranderen van de class als je de pagina sluit? :S En waarom zet je niet meteen de goede classname met php?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_54489290
Sr je hebt een PM
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  zaterdag 10 november 2007 @ 09:16:21 #255
12880 CraZaay
prettig gestoord
pi_54499878
quote:
Op vrijdag 9 november 2007 17:46 schreef Chandler het volgende:

Je kunt trouwens beter die onload (imho) gewoon onderaan het script zetten.
Nee, want dat wordt 'ie al uitgevoerd voor de HTML geladen is en de DOM nog niet compleet is. Wél zou het netter zijn om een onload event listener toe te voegen via het script imo.

Ander alternatief, en dan werkt Chandlers suggestie wel, is om de JS includes helemaal aan het einde van je HTML te zetten. Dat komt de performance ook ten goede (normaal gebruikt een browser 2 "download threads", maar voor JS maar 1, als je meerdere includes bovenaan hebt staan gaat 'ie die dus 1 voor 1 afwerken (downloaden + parsen) voordat 'ie aan de HTML begint). Maar da's meer van toepassing op high traffic site's wellicht.
pi_54516741
Volgens mij niet echt een dummy vraag...

Wanneer ik op een plaatje klik, en vervolgens (met de linkermuisknop nog ingedrukt) de cursor begin te slepen, veranderd de cursor in een 'stop' teken. Is hier iets tegen te doen?

Ik wil dat de cursor gewoon als pointer blijft.
pi_54519163
Denk het niet, dit is iets wat niet te defenieren is zal ongetwijfeld anders zijn in IE dan FF
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  zondag 11 november 2007 @ 02:38:36 #258
136730 PiRANiA
All thinking men are atheists.
pi_54519165
quote:
Op zondag 11 november 2007 00:17 schreef Skorpija het volgende:
Volgens mij niet echt een dummy vraag...

Wanneer ik op een plaatje klik, en vervolgens (met de linkermuisknop nog ingedrukt) de cursor begin te slepen, veranderd de cursor in een 'stop' teken. Is hier iets tegen te doen?

Ik wil dat de cursor gewoon als pointer blijft.
iets van image onmove="corsor:default" .
Zoiets?
pi_54522872
quote:
Op zondag 11 november 2007 00:17 schreef Skorpija het volgende:
Wanneer ik op een plaatje klik, en vervolgens (met de linkermuisknop nog ingedrukt) de cursor begin te slepen, veranderd de cursor in een 'stop' teken. Is hier iets tegen te doen?


Bij dit soort vragen vraag ik me altijd af waarom je zoiets zou willen.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_54524353
quote:
Op zondag 11 november 2007 12:23 schreef SuperRembo het volgende:

[..]



Bij dit soort vragen vraag ik me altijd af waarom je zoiets zou willen.
Ik wil via javascript over een plaatje 'tekenen'. Maar als ik dus begin met tekenen, veranderd de cursor in een 'not-allowed' cursor.
  zondag 11 november 2007 @ 14:14:10 #261
12880 CraZaay
prettig gestoord
pi_54525480
quote:
Op zondag 11 november 2007 13:30 schreef Skorpija het volgende:

[..]

Ik wil via javascript over een plaatje 'tekenen'. Maar als ik dus begin met tekenen, veranderd de cursor in een 'not-allowed' cursor.
Leg die eens even uit als je wilt "Over een plaatje tekenen" is niet echt standaard browsergedrag, dus daar kan ik me weinig bij voorstellen.
pi_54526171
Nou, eigenlijk heel simpel:

Men upload een plaatje, klikt op een knopje van een 'kwastje' en vervolgens kan men op het plaatje 'free hand' tekenen. Dat natuurlijk ook weer d.m.v. javascript.
Maar ik heb een oplossing gevonden denk ik. Ik zet onder mijn cursor een klein transparant plaatje (10x10) welke weer bovenop het ge-uploade plaatje ligt. Echter dat kleine plaatje maak ik draggable. Zo denkt de cursor dat hij eigenlijk een plaatje sleept (dus geen 'not-allowed' cursor) maar laat ik daaronder weer gewoon tekenen
  zondag 11 november 2007 @ 19:26:35 #263
12880 CraZaay
prettig gestoord
pi_54533275
Of een div over de afbeelding leggen met een transparante gif als achtergrond, gaat wellicht ook wel werken.
pi_54604658
Ik heb een functie, en ik wil die op een manier aanroepen.

1document.write('henk'+time()+'piet')


maar daar komtuit

17henkpiet


hoe komt dat? (time is nu even 7). waarom komt er niet henk7piet uit?
pi_54606444
Is Time geen gereserveerde naam in Javascript?
en returnt die functie wel wat?
pi_54606982
quote:
Op woensdag 14 november 2007 18:10 schreef super-muffin het volgende:
Is Time geen gereserveerde naam in Javascript?
en returnt die functie wel wat?
ja
pi_54607050
1
2
function time() { return '7'; }
document.write('henk'+time()+'piet');


Dit geeft toch echt 'henk7piet'.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_54641094
quote:
Op zondag 11 november 2007 13:30 schreef Skorpija het volgende:

[..]

Ik wil via javascript over een plaatje 'tekenen'. Maar als ik dus begin met tekenen, veranderd de cursor in een 'not-allowed' cursor.
Stel het plaatje in als background-image van het vlak waarin je wilt tekenen. Leuk idee trouwens.
pi_54642486
quote:
Op woensdag 14 november 2007 18:36 schreef SuperRembo het volgende:

[ code verwijderd ]

Dit geeft toch echt 'henk7piet'.
heb dit gedaan:

1
2
3
document.write('henk')
time()
document.write('piet')

dit werkt wel
pi_54643743
quote:
Op vrijdag 16 november 2007 07:46 schreef Flaccid het volgende:

[..]

heb dit gedaan:
[ code verwijderd ]

dit werkt wel
Nou ja "werkt".

Het vermoeden van super-muffin was dus terecht. De functie time() returnt zelf niets, time() voert zelf een document.write() uit. De uitkomst die je kreeg was dus heel erg logisch.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_55263120
Ik heb een vraagje over dynamische form elementen.

Aangezien ik er niet uitkom vraag ik het dan maar.

Een voorbeeld:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script type="text/javascript">
function addForm()
{
     code++;

     nieuweCode = '<div id="code' + code '">Inhoud</div>';

     document.getElementById('code').innerHTML = document.getElementById('code').innerHTML + nieuweCode

}

function removeForm(id)
{
     document.getElementById('code').removeChild('code' + id);
}

code = 1;


opzet html

1
2
3
<div id="code">
     <div id="code1">Inhoud</div>
</div>


Het doel is dynamisch divs (met inhoud) toe te voegen! iemand die mijn fout ziet? en jaa ik heb gezocht! :D

Nu krijg ik met addForm wel een extra box in code, maar deze kan ik niet verwijderen met removeForm
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_55263625
1     document.getElementById('code').removeChild(document.getElementById('code' + id));


Gokje.
pi_55446258
En een dummy vraag: Bestaat er binnen de DOM een unshift achtige functie voor appendChild? Dat hij de child niet ná de rest van de childs zet maar ervoor? Op het moment gooi ik alles naar een temporary object over, voeg ik er eentje toe, en dan weer terug, maar snel is dat helaas niet.
pi_55446464
Dat kan met element.insertBefore().
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_55464582
Bedankt, nu ben ik van 1600 childNode "verschuivingen" naar 113 gegaan.
pi_55704776
Heeft iemand misschien een eenvoudig alternatief voor innerHTML?
Via innerHTML lukt het niet om karakters zoals ö,ü of é te plaatsen, Firefox geeft een ? , IE laat ook karakters achter het teken weg.
[ alle babes op 1 pagina via fok!wiki -bijgewerkt tot 20/10/2015 ]
Leve Kim , Leve Maduro , Leve Castro
#freeTarik #freeDemon_from_heaven
pi_55704892
zoiets?
1document.body.appendChild(document.createTextNode('vul hier je tekst'));
pi_55704969
Ik kwam met google ook al op TextNodes uit, ik ga dit vanavond proberen (ik wil het in een bestaande div, maar dat gaat wel lukken). Dankjewel.
[ alle babes op 1 pagina via fok!wiki -bijgewerkt tot 20/10/2015 ]
Leve Kim , Leve Maduro , Leve Castro
#freeTarik #freeDemon_from_heaven
pi_55705002
quote:
Op dinsdag 1 januari 2008 17:26 schreef BabeWatcher het volgende:
Heeft iemand misschien een eenvoudig alternatief voor innerHTML?
Via innerHTML lukt het niet om karakters zoals ö,ü of é te plaatsen, Firefox geeft een ? , IE laat ook karakters achter het teken weg.
Welkom in de wondere wereld van encodingproblemen.

Zorg ervoor dat de tekens die je mbv innerHTML plaatst in dezelfde codering staan als de codering waarmee de pagina wordt weergegeven (te achterhalen door in firefox de pagina info op te vragen). Het htmlbestand vanwaaruit je die innerHTML probeert te zetten, moet dus ook in die codering opgeslagen zijn.

Het gaat dus niet goed als de webserver tegen de browser zegt dat de pagina uit UTF-8 data bestaat, maar dat het html bestand zelf als ISO8859 is opgeslagen. Dan zijn de speciale tekens in de broncode ook in ISO8859 formaat opgeslagen. En dat gaat niet goed als de browser alles beschouwt als UTF-8.

Wil je goed en probleemloos met speciale tekens werken dan moet je een codering kiezen. Het slimste is om voor UTF-8 te kiezen. Maar daar moet je dan wel consequent voor kiezen: *alles* moet UTF-8 zijn, van de html broncode, de encoding header die je webserver meestuurt, tot aan de data in je database.
pi_55705290
okee, dat kan ik ook nog proberen, mijn database (locaal) is latin-1, hoe het op lycos is weet ik niet.

--19:30
Het ligt dus aan de codering (iso-8859 vs utf 8). Ik ben er bijna uit, ik blijf nog even zoeken.


-19:45
Farenji
Het werkt, nog niet in IE, maar dat ligt aan de advertenties op lycos

[ Bericht 27% gewijzigd door BabeWatcher op 01-01-2008 19:44:10 ]
[ alle babes op 1 pagina via fok!wiki -bijgewerkt tot 20/10/2015 ]
Leve Kim , Leve Maduro , Leve Castro
#freeTarik #freeDemon_from_heaven
pi_55959754
Ik heb een jQuery vraagje, hoe kan ik een attribuut toggelen?

Dus als het attribuut nog niet bestaat aanmaken, en als het wel bestaat aanmaken.
  zaterdag 12 januari 2008 @ 12:14:11 #282
12880 CraZaay
prettig gestoord
pi_55970068
Wat voor attribuut? CSS-attribuut, HTML-attribuut?

http://docs.jquery.com/Events/toggle
http://docs.jquery.com/Attributes/toggleClass#class

Dit en meer is prima te vinden in de uitstekende documentatie.
pi_56028105
HTML attribuut.

Die toggle functie had ik wel gevonden, maar doet niet precies wat ik wil. Het attribuut moet aangemaakt worden als het niet bestaat, en als het wel bestaat verwijderd worden, met die toggle functie gaat dat niet lukken, die registreerd gewoon elke even en oneven klik.
pi_56028490
Zo?

1
2
3
4
5
6
7
8
9
var el = $('id');
if (typeof(el.attr('foo')) == 'undefinded')
{
   el.attr('foo', 'bar');
}
else
{
   el.removeAttr('foo');
}
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  maandag 14 januari 2008 @ 19:25:42 #285
12880 CraZaay
prettig gestoord
pi_56030515
quote:
Op maandag 14 januari 2008 17:42 schreef super-muffin het volgende:
HTML attribuut.

Die toggle functie had ik wel gevonden, maar doet niet precies wat ik wil. Het attribuut moet aangemaakt worden als het niet bestaat, en als het wel bestaat verwijderd worden, met die toggle functie gaat dat niet lukken, die registreerd gewoon elke even en oneven klik.
Precies. Die kun je dan toch prima gebruiken om te doen wat in de post hierboven staat?
pi_56030632
Dat wat hier boven staat had ik nodig, thanks. Stom dat ik er zelf niet ben opgekomen
pi_56031022
quote:
Op maandag 14 januari 2008 19:30 schreef super-muffin het volgende:
Dat wat hier boven staat had ik nodig, thanks. Stom dat ik er zelf niet ben opgekomen
Even de documentatie doorlezen: http://docs.jquery.com/Attributes. Wat voor functies bestaan er? Zit er iets tussen wat ik kan gebruiken?
quote:
If the element does not have an attribute with such a name, undefined is returned.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_56031558
Ik weet wel hoe ik documentatie moet gebruiken hoor
Maar toen ik hier aan begon dacht ik iets te moeilijk na, terwijl het erg simpel is.

anyway, ik kan weer verder.
  maandag 21 januari 2008 @ 19:56:33 #289
37634 wobbel
Da WoBBeL King
pi_56206580
Ik hoop dat jullie een beetje JS kunnen

Ik heb deze pagina:

http://www.senscomputers.nl/v2/TEST.php

als je vervolgens de popup opent, en je klikt op het nummer...dan moet ie dat invullen in het inputvenster van het vorige venster

Het KAN wel maar hoe?
  maandag 21 januari 2008 @ 20:02:22 #290
85514 ralfie
!Yvan eht nioj
pi_56206765
opener.test.mediaId.value = "watermeloen"
pi_56209832
quote:
Op maandag 21 januari 2008 19:56 schreef wobbel het volgende:
Ik hoop dat jullie een beetje JS kunnen

Ik heb deze pagina:

http://www.senscomputers.nl/v2/TEST.php

als je vervolgens de popup opent, en je klikt op het nummer...dan moet ie dat invullen in het inputvenster van het vorige venster

Het KAN wel maar hoe?
submit form naar een popup:

http://obiewebsite.source(...)it_a_form_to_a_popup

Verkeerd begrepen, maar misschien kan je zoiets doen.

[ Bericht 2% gewijzigd door Flaccid op 21-01-2008 22:17:52 ]
  vrijdag 25 januari 2008 @ 13:58:59 #292
37634 wobbel
Da WoBBeL King
pi_56299056
Help!!!11!!!

Ik heb deze HTML code:

1<span id="AjaxCheckUsername"> </span>


Nu wil ik met Javascript de text in dat vakje wijzigen...hoe doe ik dat?
Dit werkt namelijk NIET:

1document.getElementById('AjaxCheckUsername').value = 'Bezig met opvragen...'


- Reactie op post over andere vraag -
quote:
Op maandag 21 januari 2008 20:02 schreef ralfie het volgende:
opener.test.mediaId.value = "watermeloen"
Bedankt werkt goed
pi_56299184
Als je het snel en vies wilt doen:


1document.getElementById('AjaxCheckUsername').innerHTML = 'Bezig met opvragen...'
  vrijdag 25 januari 2008 @ 14:12:01 #294
37634 wobbel
Da WoBBeL King
pi_56299345
quote:
Op vrijdag 25 januari 2008 14:04 schreef Geqxon het volgende:
Als je het snel en vies wilt doen:
[ code verwijderd ]
ik ben een vies mannetje
pi_56299722
Het kan ook met element.innerText (IE) / element.textContent (FF). Vooral handig als je er tekst in wil zetten die mogelijk tekens bevat die html-encoded moeten worden. (Natuurlijk wel ff in een herbruikbare functie van maken).
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_56299891
Het is nog wel het mooist om er een textnode in te zetten.
pi_56300381
quote:
Op vrijdag 25 januari 2008 14:40 schreef Geqxon het volgende:
Het is nog wel het mooist om er een textnode in te zetten.
Dat kan als je zeker weet dat ie leeg is. Anders moet je eerst de bestaande child node(s) verwijderen.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_56300599
En dat is gelukkig vrij simpel:

1
2
3
   while (node.hasChildNodes()){
     node.removeChild(node.firstChild);
   }
pi_56302106
Vreemd genoeg is jouw manier in IE sneller dan mijn manier, maar in FF is 't andersom

(Het is natuurlijk heel goed mogelijk dat dat aan m'n primitieve testscriptje ligt)

[ Bericht 24% gewijzigd door SuperRembo op 25-01-2008 16:39:06 ]
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_56304768
Jij werkt zeker met een for-lusje dat loopt van 0 tot het aantal kinderen van de node? Vreemd inderdaad...
  vrijdag 25 januari 2008 @ 20:08:45 #301
85514 ralfie
!Yvan eht nioj
pi_56306713
quote:
Op vrijdag 25 januari 2008 18:43 schreef Geqxon het volgende:
Jij werkt zeker met een for-lusje dat loopt van 0 tot het aantal kinderen van de node? Vreemd inderdaad...
ik kan me er wel iets bij voorstellen. Firefox is gebouwd op een soort van javascript engine en daarom ook helemaal rond dat soort objects en children en whatnot. IE heeft een eigen platform wat javascript als het ware emuleert. Wat je dan krijgt is dat dit soort basale functies in firefox heel snel gaan (want basaal) en in IE trager (want wordt geemuleerd) terwijl iets als object.innerHTML in IE direct wordt verwerkt terwijl firefox met objects.childs.counts.removes ed. moet gaan emuleren omdat netjes te verwerken.

Dat is mijn theorie althans
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')