Gd image refresht niet in ajax

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tom de vries

Tom de vries

19/08/2010 16:24:19
Quote Anchor link
Hallo, Ik heb een gd image, met daarin een getal. Dat getal is random, dus is elke keer anders als ik het bestand image.php open.

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.
 
PHP hulp

PHP hulp

27/11/2024 02:05:04
 

19/08/2010 16:28:04
Quote Anchor link
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.
 
Tom de vries

Tom de vries

19/08/2010 16:45:27
Quote Anchor link
ehmmm.... volgens mij heb je op het verkeerde bericht gereageerd.
 
Ama saril

ama saril

19/08/2010 16:47:13
Quote Anchor link
Volgens mij was dat sarcasme met de betekenis "kan je wat meer laten zien" :)
Gewijzigd op 19/08/2010 16:47:34 door ama saril
 

19/08/2010 16:59:36
Quote Anchor link
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.
 
Chris -

Chris -

19/08/2010 17:06:50
Quote Anchor link
Zonder relevante code kunnen we natuurlijk niets voor je betekenen Tom ;-)
 
Tom de vries

Tom de vries

19/08/2010 17:07:56
Quote Anchor link
haha oke, ik ben nooit geweldig geweest in sarcasme herkennen op papier :p

Maar even de basis van de scripts:

image.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$img
    = imagecreate(140,50);
$code   = rand(0,100);
$zwart  = imagecolorallocate($img,0,0,0);
imagestring($img,3,5,5,$code,$zwart);
header ("Content-type: image/gif");
imagegif($img);
imagedestroy($img);
?>

script1.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$info
= array();
$info['text'] = '<img src="image.php"> blablabla ';
print json_encode($info);
?>

script2.php
Code (php)
PHP script in nieuw venster Selecteer het PHP 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
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>


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
 

19/08/2010 17:14:15
Quote Anchor link
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.
Oh, en je kunt een code hier op het forum plakken door het tussen [code] en [/code] tags te plaatsen.
Gewijzigd op 19/08/2010 17:16:19 door
 
Tom de vries

Tom de vries

19/08/2010 17:19:20
Quote Anchor link
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.


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
 

19/08/2010 17:20:48
Quote Anchor link
Ik zou, zoals ik aangegeven heb nog een vraagteken achter php plakken.
 
Tom de vries

Tom de vries

19/08/2010 17:22:33
Quote Anchor link
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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.