login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Javascript werkt niet goed + ander vraagje

Offline incarnez - 29/01/2010 11:01 (laatste wijziging 29/01/2010 11:52)
Avatar van incarnezNieuw lid Hallo,
ik ben nieuw hier op het forum,
en ik heb het volgende:

ik heb een stukje javascript,
deze code heb ik:

  1. <script type="text/javascript" language="javascript">
  2. <!--
  3. function update_status(){
  4.  
  5. var xmlhttp = new XMLHttpRequest();
  6. xmlhttp.open("GET", "updatetime.php", false);
  7. xmlhttp.send(null);
  8.  
  9. }
  10. -->
  11. </script>
  12.  
  13. Omschrijving:<br>
  14. <textarea name="Omschrijving" cols=90 rows=20 onkeypress="return update_status();"></textarea><br>
  15. <input type="hidden" name="naam" value="<?=$zoeknaam?>">
  16. <input type="submit" name="verzenden" value="Verzenden!">
  17. </font>
  18.  
  19. </form>


dit werkt allemaal goed, behalve in internet explorer...
firefox en crhome werkt het zonder problemen...

ook hebi k nog een 2de...
hij update dus nu bij iedere toetsaanslag de database,
beetje te veel van het goede.
nu wil ik dus dat hij bij alleen de letter a de database update

heb dit al geprobeerd:


  1. <script type="text/javascript" language="javascript">
  2. <!--
  3. function update_status(){
  4. if( key == 'a'){
  5.  
  6. var xmlhttp = new XMLHttpRequest();
  7. xmlhttp.open("GET", "updatetime.php", false);
  8. xmlhttp.send(null);
  9. }
  10. ELSE
  11. {
  12. alert("hoi");
  13. }
  14. -->
  15. </script>


hoe kan ik deze 2 probleempjes verhelpen?

Met vriendelijke groet,
Incarnez

10 antwoorden

Gesponsorde links
Offline Richard - 29/01/2010 11:24
Avatar van Richard Crew algemeen Logisch, want IE6 ondersteunt het XMLHttpRequest-object niet.

http://en.wikip..._5.5_and_6

Voor je tweede probleem: als je een minimale tijd neemt tussen toetsaanslag en update (oftewel, 1 seconde wachten, als het dan nog hetzelfde is pas updaten) gaat het prima.
Offline incarnez - 29/01/2010 11:30
Avatar van incarnez Nieuw lid maar ik gebruik IE8 die hoort het dan toch wel te ondersteunen?

je bedoelt instellen dat hij maar 1 keer kan updaten in de seconde ofzo?

hoe kan ik dit dan veranderen?

greetz
Offline Richard - 29/01/2010 11:36
Avatar van Richard Crew algemeen Vertel eens wat er niet werkt? Dat stukje code werkt bij mij namelijk perfect.
Offline incarnez - 29/01/2010 11:54
Avatar van incarnez Nieuw lid k heb even het topic aangepast,
in mijn beginpost staat nu welk script werkt (bovenste)
alleen in firefox en in chroom...

niet in IE8....
waarom? geen idee...


het 2de script werkt niet...
dit script gaat over als ik een 'a' type... dat hij dan het script moet uitvoere...

wat dus bandbreete bespaart...
als er een andere betere manier is kan dat natuurlijk ook...

greetz
Offline lemoinet - 29/01/2010 15:48
Avatar van lemoinet PHP gevorderde waar is "key" gedefinieerd?
Offline incarnez - 01/02/2010 08:35 (laatste wijziging 01/02/2010 10:36)
Avatar van incarnez Nieuw lid het is al deels opgelost,

al weet ik nog niet hoe het kan dat alles wel werkt in firefox en chroom en neit in internet explorer,,,

greetz
Offline Erwt - 01/02/2010 11:30
Avatar van Erwt PHP beginner Ik zal het even uitleggen, je zegt:
  1. var xmlhttp = new XMLHttpRequest();


Het XMLHttpRequest wordt niet ondersteund door IE voor zover ik weet. Het volgende werkt voor IE denk ik:
  1. var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");


Wat je kan doen is een try catch maken die beidde probeert uit te voeren.. dus:
  1. try
  2. {
  3. // Firefox code
  4. }
  5. catch(e)
  6. {
  7. // IE code
  8. }
Offline incarnez - 01/02/2010 11:48 (laatste wijziging 01/02/2010 13:13)
Avatar van incarnez Nieuw lid heb geprobeerd zoals je zij:

dit is nu codE:

  1. document.onkeydown = checkKeycode
  2. function checkKeycode(e) {
  3. var keycode;
  4. if (window.event) keycode = window.event.keyCode;
  5. else if (e) keycode = e.which;
  6. if(keycode == 13){
  7. try
  8. {
  9. // Firefox code
  10. var xmlhttp = new XMLHttpRequest();
  11. xmlhttp.open("GET", "updatetime.php", false);
  12. xmlhttp.send(null);
  13. }
  14. catch(e)
  15. {
  16. // IE code
  17. var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  18. xmlhttp.open("GET", "updatetime.php", false);
  19. xmlhttp.send(null);
  20. }
  21.  
  22.  
  23. }
  24. }


maar werkt nog niet..,.
firefox werkt hij,
crhoom ook,
ie8 half...

de code blijkt wel te werken,
maar het probleem is dat hij nahet opstarten van de pagina maar 1 keer het script uitvoert...

dit is dus niet goed... en dat moet vaker gaangebeuren.

dit moet dus iedere keer als ik op enter druk en niet alleen als de pagina net geopend is.

Offline vinTage - 01/02/2010 16:57
Avatar van vinTage Nieuw lid Deze werkt wel:

  1. <script type="text/javascript">
  2.  
  3. document.onkeydown = checkKeycode
  4.  
  5. var http = createRequestObject();
  6.  
  7. function createRequestObject()
  8. {
  9. var req;
  10. if(window.XMLHttpRequest)
  11. {
  12. req = new XMLHttpRequest();
  13. }
  14. else if(window.ActiveXObject)
  15. {
  16. req = new ActiveXObject("Microsoft.XMLHTTP");
  17. }
  18. else
  19. {
  20. alert('Problem creating the XMLHttpRequest object');
  21. }
  22. return req;
  23. }
  24.  
  25. function sendRequestTest()
  26. {
  27. http.open('get', 'updatetime.php?rand='+Math.random()*99);
  28. http.onreadystatechange = handleResponseTest;
  29. http.send(null);
  30. }
  31.  
  32. function handleResponseTest()
  33. {
  34. if(http.readyState == 4 && http.status == 200)
  35. {
  36. if(http.responseText)
  37. {
  38. alert(http.responseText);
  39. }
  40. }
  41. }
  42.  
  43. function checkKeycode(e)
  44. {
  45. var keycode;
  46. if (window.event) keycode = window.event.keyCode;
  47. else if (e) keycode = e.which;
  48. if(keycode == 13)
  49. {
  50. sendRequestTest()
  51. }
  52. }
  53. </script>
Offline incarnez - 02/02/2010 09:00
Avatar van incarnez Nieuw lid inderdaad,
deze werkt perfect...

bedankt hiervoor! 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.203s