2016-05-18 5 views
0

Ich bin nur ein hartnäckiges Anfänger und ich habe ein weiteres Hindernis in dem Weg trifft, so dass ich hoffe, dass Sie noch einmal mir helfen werden ... :) Ich habe diesen HTML bekommt:Wie korrekt aktualisiert PHP-Datei enthalten?

<div class='hold'><?php include 'image.php'; ?></div> 
<div class='refresh'>Get new image</div> 

und der PHP-Code:

<?php 
$dir = 'images/'; 
$img = array(); 

if(is_dir($dir)) { 
    if($od = opendir($dir)) { 
    while(($file = readdir($od)) !== false) { 
     if(strtolower(strstr($file, '.'))==='.jpg') { 
     array_push($img, $file); 
     } 
    } 
    closedir($od); 
    } 
} 
$id = uniqid(); 
$smth = array_rand($img, 1); 
echo '<img src=' . $dir.$img[$smth] . '?' . $id . ' width="200px" height="50px" />'; 
echo '<input type="hidden" value=' . $id . ' />'; 
?> 

Also wenn ich jetzt auf meiner Seite freue ich sehe in dem <div class='hold'></div> meinen img aus dem Ordner Bildern, und es ist in Ordnung. ABER wenn ich auf die <div class='refresh'></div> klicke, möchte ich natürlich einen anderen img aus meinem Ordner holen, aber ich weiß nicht, wie ich diesen Trick richtig bewerkstellige. Ich weiß, dass erste Antwort wird AJAX werden ergeben, und ich weiß, dass ich so etwas wie

function loadGraphic() { 
    $('.hold').load('image.php'); 
}; 
loadGraphic(); 

tut und dann $('.refresh').click(loadGraphic); aber wenn ich versuche, dass vom Server als Antwort auf bekomme ich zwei Dinge: image.php und , natürlich, so etwas wie car.jpg?573c4e010c7f6 ... Aber ich sehr-sehr will bekommen nur einen Blick wie car.jpg?573c4e010c7f6 oder image.php?573c4e010c7f6 - I do not care ... Also ... ich hoffe, dass Sie mein Konzept haben. .. vielleicht frage ich nach einem Wunder - ich weiß nicht! Jeder, absolut wird jede Hilfe dankbar sein :)

+0

Was ist falsch mit Ihrem Code? Ich verstehe nicht, was ist dein Problem? 'image.php' ist die Ajax-Anfrage. Dann wird ein Bild an das DOM angehängt, was zu einer anderen Anforderung an den Server führt, das relevante Bild zu laden. Dies ist das Ergebnis –

+0

Sie wollen nur eine Anfrage oder was? –

+0

Ja, ich möchte etwas wie image.php sehen? 573c4e010c7f6 und das ist es ... Vielleicht kann es nicht auf diese Weise gemacht werden ... –

Antwort

0

Probieren Sie es auf folgende Weise:

JS Funktion:

function loadGraphic() { 
    $.get("image.php", function(data) { 
     $(".hold").html(data); 
    }); 
}; 

Html:

<div class='refresh' onclick='loadGraphic()'>Get new image</div> 
+0

Wie unterscheidet sich das Code Verhalten von OP ??? –

+0

Sie haben Recht. Das ist eigentlich das gleiche Code-Verhalten wie das OP. Ich glaube, ich habe sein Konzept nicht verstanden. Warte einfach auf seine Antwort. – Bfcm

+0

Bfcm, thx für die Rückmeldung, aber mit Ihrer Beratung bekomme ich immer noch die gleichen zwei "Dateien" als Antwort: image.php und ein Bild. Ich weiß nicht, wie ich sage, vielleicht bin ich für etwas unmöglich und es kann nicht getan werden - bekommen nur eine ... –

Verwandte Themen