Gd image refresht niet in ajax
Mijn bedoeling is echter dat ik hem via ajax kan weergeven. Als ik dat doe met <img src="image.php"> dan werkt dat goed, maar stuur ik dan een nieuwe ajaxrequest dan refresht image.php niet en blijft hetzelfde random getal staan. Wie weet hoe ik dit kan oplossen?
Alvast bedankt.
Ik denk dat je op regel drie die if anders moet doen en de variabele van regel 20 gaat naar het begin toe. Je doet het echt helemaal verkeerd.
ehmmm.... volgens mij heb je op het verkeerde bericht gereageerd.
Gewijzigd op 19/08/2010 16:47:34 door ama saril
Tom de vries op 19/08/2010 16:45:27:
ehmmm.... volgens mij heb je op het verkeerde bericht gereageerd.
Nee, volgens mij ben jij relevante 'vergeten' toe te voegen.
Zonder relevante code kunnen we natuurlijk niets voor je betekenen Tom ;-)
Maar even de basis van de scripts:
image.php
Code (php)
script1.php
Code (php)
script2.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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
<html>
<head>
<title> blabla </title>
<script type="text/javascript" src="json.js"></script>
<script language="javascript" type="text/javascript">
function newpage(pagina){
var ajaxRequest;
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
var result = JSON.parse(ajaxRequest.responseText);
document.getElementById('main').innerHTML = result.text;
}
}
ajaxRequest.open("post", pagina, true);
ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
ajaxRequest.send();
}
</script>
</head>
<body>
<div id="main"> </div>
<button onClick="newpage('script1.php')" value="geefplaatje">
</body>
</html>
<head>
<title> blabla </title>
<script type="text/javascript" src="json.js"></script>
<script language="javascript" type="text/javascript">
function newpage(pagina){
var ajaxRequest;
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
var result = JSON.parse(ajaxRequest.responseText);
document.getElementById('main').innerHTML = result.text;
}
}
ajaxRequest.open("post", pagina, true);
ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
ajaxRequest.send();
}
</script>
</head>
<body>
<div id="main"> </div>
<button onClick="newpage('script1.php')" value="geefplaatje">
</body>
</html>
Nouja dit is het dus, je opent script2.php. De eerste keer dat je op de knop drukt geeft hij mooi het plaatje, maar als je dan nog eens drukt refresht hij image.php niet. script1.php wordt wel gerefresht.
Gewijzigd op 19/08/2010 17:20:22 door Tom de vries
Let ook nog op dat je dus nu wel je site kapot maakt voor mensen die of javascript uit hebben staan, of als de javascript niet correct werkt (zoals dit geval) het ook allemaal niet werkt. Bouw daarvoor altijd een mechanisme in die zorgt dat de website zonder javascript ook nog normaal werkt.
Oh, en je kunt een code hier op het forum plakken door het tussen [code] en [/code] tags te plaatsen.
Karl Karl op 19/08/2010 17:14:15:
Sowieso moet je in image.php de juiste headers meesturen om aan te geven dat het een plaatje is. Verder kan je dan ook nog aangeven dat het bestand (plaatje dus) niet gecached mag worden. En wat ook nog een goede truc is om het plaatje niet als <img src="image.php" /> te doen maar er nog een timestamp o.i.d. achter te plakken als parameter dus als image.php?123 bijvoorbeeld (iedere keer een nieuwe) want dat betekend voor de browser dat hij een nieuwe versie moet downloaden.
Let ook nog op dat je dus nu wel je site kapot maakt voor mensen die of javascript uit hebben staan, of als de javascript niet correct werkt (zoals dit geval) het ook allemaal niet werkt. Bouw daarvoor altijd een mechanisme in die zorgt dat de website zonder javascript ook nog normaal werkt.
Let ook nog op dat je dus nu wel je site kapot maakt voor mensen die of javascript uit hebben staan, of als de javascript niet correct werkt (zoals dit geval) het ook allemaal niet werkt. Bouw daarvoor altijd een mechanisme in die zorgt dat de website zonder javascript ook nog normaal werkt.
Heel mijn site is gebaseerd op javascript, als die af is dan maak ik een tweede versie zonder js.
En ontopic, ik heb nu in plaats van '<img src="image.php">' '<img src="image.php?'.time().'">' gedaan en het werkt. Bedankt voor je hulp :D
Gewijzigd op 19/08/2010 17:25:19 door Tom de vries
Ik zou, zoals ik aangegeven heb nog een vraagteken achter php plakken.
Karl Karl op 19/08/2010 17:20:48:
Ik zou, zoals ik aangegeven heb nog een vraagteken achter php plakken.
Had ik in het script ook gedaan, maar hier was het hier vergeten :p
Probleem opgelost, bedankt voor je snelle hulp
Gewijzigd op 19/08/2010 17:25:01 door Tom de vries