Javascript werkt niet goed + ander vraagje
incarnez - 29/01/2010 11:01 (laatste wijziging 29/01/2010 11:52)
Nieuw lid
Hallo,
ik ben nieuw hier op het forum,
en ik heb het volgende:
ik heb een stukje javascript,
deze code heb ik:
<script type="text/javascript" language="javascript">
<!--
function update_status(){
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "updatetime.php", false);
xmlhttp.send(null);
}
-->
</script>
Omschrijving:<br>
<textarea name="Omschrijving" cols=90 rows=20 onkeypress="return update_status();"></textarea><br>
<input type="hidden" name="naam" value="<?=$zoeknaam?>">
<input type="submit" name="verzenden" value="Verzenden!">
</font>
</form>
<script type="text/javascript" language="javascript">
<!--
function update_status(){
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "updatetime.php", false);
xmlhttp.send(null);
}
-->
</script>
Omschrijving:<br>
<textarea name="Omschrijving" cols=90 rows=20 onkeypress="return update_status();"></textarea><br>
<input type="hidden" name="naam" value="<?= $zoeknaam ?> ">
<input type="submit" name="verzenden" value="Verzenden!">
</font>
</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:
<script type="text/javascript" language="javascript">
<!--
function update_status(){
if( key == 'a'){
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "updatetime.php", false);
xmlhttp.send(null);
}
ELSE
{
alert("hoi");
}
-->
</script>
< script type= "text/javascript" language= "javascript" >
<!--
function update_status( ) {
var xmlhttp = new XMLHttpRequest( ) ;
xmlhttp. open( "GET" , "updatetime.php" , false ) ;
xmlhttp. send( null ) ;
}
ELSE
{
alert( "hoi" ) ;
}
-->
</script>
hoe kan ik deze 2 probleempjes verhelpen?
Met vriendelijke groet,
Incarnez
10 antwoorden
Gesponsorde links
Richard - 29/01/2010 11:24
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.
incarnez - 29/01/2010 11:30
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
Richard - 29/01/2010 11:36
Crew algemeen
Vertel eens wat er niet werkt? Dat stukje code werkt bij mij namelijk perfect.
incarnez - 29/01/2010 11:54
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
lemoinet - 29/01/2010 15:48
PHP gevorderde
waar is "key" gedefinieerd?
incarnez - 01/02/2010 08:35 (laatste wijziging 01/02/2010 10:36)
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
Erwt - 01/02/2010 11:30
PHP beginner
Ik zal het even uitleggen, je zegt:
var xmlhttp = new XMLHttpRequest();
var xmlhttp = new XMLHttpRequest( ) ;
Het XMLHttpRequest wordt niet ondersteund door IE voor zover ik weet. Het volgende werkt voor IE denk ik:
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
var xmlhttp= new ActiveXObject( "Microsoft.XMLHTTP" ) ;
Wat je kan doen is een try catch maken die beidde probeert uit te voeren.. dus:
try
{
// Firefox code
}
catch(e)
{
// IE code
}
try
{
// Firefox code
}
catch ( e)
{
// IE code
}
incarnez - 01/02/2010 11:48 (laatste wijziging 01/02/2010 13:13)
Nieuw lid
heb geprobeerd zoals je zij:
dit is nu codE:
document.onkeydown = checkKeycode
function checkKeycode(e) {
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
if(keycode == 13){
try
{
// Firefox code
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "updatetime.php", false);
xmlhttp.send(null);
}
catch(e)
{
// IE code
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("GET", "updatetime.php", false);
xmlhttp.send(null);
}
}
}
document.onkeydown = checkKeycode
function checkKeycode( e) {
var keycode;
if ( window.event ) keycode = window.event .keyCode ;
else if ( e) keycode = e.which ;
if ( keycode == 13 ) {
try
{
// Firefox code
var xmlhttp = new XMLHttpRequest( ) ;
xmlhttp.open ( "GET" , "updatetime.php" , false ) ;
xmlhttp.send ( null ) ;
}
catch ( e)
{
// IE code
var xmlhttp= new ActiveXObject( "Microsoft.XMLHTTP" ) ;
xmlhttp.open ( "GET" , "updatetime.php" , false ) ;
xmlhttp.send ( null ) ;
}
}
}
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.
vinTage - 01/02/2010 16:57
Nieuw lid
Deze werkt wel:
<script type="text/javascript">
document.onkeydown = checkKeycode
var http = createRequestObject();
function createRequestObject()
{
var req;
if(window.XMLHttpRequest)
{
req = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
req = new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
alert('Problem creating the XMLHttpRequest object');
}
return req;
}
function sendRequestTest()
{
http.open('get', 'updatetime.php?rand='+Math.random()*99);
http.onreadystatechange = handleResponseTest;
http.send(null);
}
function handleResponseTest()
{
if(http.readyState == 4 && http.status == 200)
{
if(http.responseText)
{
alert(http.responseText);
}
}
}
function checkKeycode(e)
{
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
if(keycode == 13)
{
sendRequestTest()
}
}
</script>
< script type= "text/javascript" >
document.onkeydown = checkKeycode
var http = createRequestObject( ) ;
function createRequestObject( )
{
var req;
if ( window.XMLHttpRequest )
{
req = new XMLHttpRequest( ) ;
}
else if ( window.ActiveXObject )
{
req = new ActiveXObject( "Microsoft.XMLHTTP" ) ;
}
else
{
alert ( 'Problem creating the XMLHttpRequest object' ) ;
}
return req;
}
function sendRequestTest( )
{
http.open ( 'get' , 'updatetime.php?rand=' + Math.random ( ) * 99 ) ;
http.onreadystatechange = handleResponseTest;
http.send ( null ) ;
}
function handleResponseTest( )
{
if ( http.readyState == 4 && http.status == 200 )
{
if ( http.responseText )
{
alert ( http.responseText ) ;
}
}
}
function checkKeycode( e)
{
var keycode;
if ( window.event ) keycode = window.event .keyCode ;
else if ( e) keycode = e.which ;
if ( keycode == 13 )
{
sendRequestTest( )
}
}
</ script>
Gesponsorde links
Dit onderwerp is gesloten .