Hallo
Ich versuche mich das erstemal mit AJAX, da ein require_once oder ähnliches nicht funktioniert(führt zu einem extremen reload der Seite, liegt daran das keiner genau weiß wie das ganze Programm richtig aufgebaut ist(PCPIN)).
Mein Problem ist das die Namen(php/msql = login) angezeigt werden durch das AJAX request, aber nicht die Bilder(php/msql = bin.php?id).
Das PHP-Script:
...........................................................................
<link href="../../main.css" rel="stylesheet" type="text/css" />
<?php
/** include database access **/
include '../config/dbconnect.php';
/** get 1st **/
$JP_TFC0 = mysql_query("SELECT * FROM ".$dbPrix."user WHERE ".$dbPrix."user.activated = 'y' ORDER BY ".$dbPrix."user.time_online DESC LIMIT 0, 1; ");
$result0 = @mysql_fetch_array($JP_TFC0);
$JP_TFC0A = mysql_query("SELECT * FROM ".$dbPrix."avatar WHERE ".$dbPrix."avatar.user_id = $result0[id] AND ".$dbPrix."avatar.primary = 'y'; ");
$result0a = @mysql_fetch_array($JP_TFC0A);
/** get 2nd **/
$JP_TFC1 = mysql_query("SELECT * FROM ".$dbPrix."user WHERE ".$dbPrix."user.activated = 'y' ORDER BY ".$dbPrix."user.time_online DESC LIMIT 1, 2; ");
$result1 = @mysql_fetch_array($JP_TFC1);
$JP_TFC1A = mysql_query("SELECT * FROM ".$dbPrix."avatar WHERE ".$dbPrix."avatar.user_id = $result1[id] AND ".$dbPrix."avatar.primary = 'y'; ");
$result1a = @mysql_fetch_array($JP_TFC1A);
/** get 3rd **/
$JP_TFC2 = mysql_query("SELECT * FROM ".$dbPrix."user WHERE ".$dbPrix."user.activated = 'y' ORDER BY ".$dbPrix."user.time_online DESC LIMIT 2, 3; ");
$result2 = @mysql_fetch_array($JP_TFC2);
$JP_TFC2A = mysql_query("SELECT * FROM ".$dbPrix."avatar WHERE ".$dbPrix."avatar.user_id = $result2[id] AND ".$dbPrix."avatar.primary = 'y'; ");
$result2a = @mysql_fetch_array($JP_TFC2A);
/** get 4th **/
$JP_TFC3 = mysql_query("SELECT * FROM ".$dbPrix."user WHERE ".$dbPrix."user.activated = 'y' ORDER BY ".$dbPrix."user.time_online DESC LIMIT 3, 4; ");
$result3 = @mysql_fetch_array($JP_TFC3);
$JP_TFC3A = mysql_query("SELECT * FROM ".$dbPrix."avatar WHERE ".$dbPrix."avatar.user_id = $result3[id] AND ".$dbPrix."avatar.primary = 'y'; ");
$result3a = @mysql_fetch_array($JP_TFC3A);
/** get 5th **/
$JP_TFC4 = mysql_query("SELECT * FROM ".$dbPrix."user WHERE ".$dbPrix."user.activated = 'y' ORDER BY ".$dbPrix."user.time_online DESC LIMIT 4, 5; ");
$result4 = @mysql_fetch_array($JP_TFC4);
$JP_TFC4A = mysql_query("SELECT * FROM ".$dbPrix."avatar WHERE ".$dbPrix."avatar.user_id = $result4[id] AND ".$dbPrix."avatar.primary = 'y'; ");
$result4a = @mysql_fetch_array($JP_TFC4A);
echo "<table id='nutshell border='0' cellpadding='3' style='width:100%;height:100%;background-color:#D1D9E4;align:center' cellspacing='0'>
<tr style='text-align:center;'>
<td><img src='bin.php?id=".$result0a['binaryfile_id']."' width='110px' height='120px' alt='This User has no Picture'/></td>
<td><img src='bin.php?id=".$result1a['binaryfile_id']."' width='110px' height='120px' alt='This User has no Picture'/></td>
<td><img src='bin.php?id=".$result2a['binaryfile_id']."' width='110px' height='120px' alt='This User has no Picture'/></td>
<td><img src='bin.php?id=".$result3a['binaryfile_id']."' width='110px' height='120px' alt='This User has no Picture'/></td>
<td><img src='bin.php?id=".$result4a['binaryfile_id']."' width='110px' height='120px' alt='This User has no Picture'/></td>
</tr>
<tr style='text-align:center;'>
<td>".$result0['login']."</td>
<td>".$result1['login']."</td>
<td>".$result2['login']."</td>
<td>".$result3['login']."</td>
<td>".$result4['login']."</td>
</tr>
</table>";
?>
...........................................................................
Das PHP-Script bezieht eine weiteres PHP-Script ein, dieses hier:
<?php
include '../config/dbconnect.php';
$query = "SELECT body,mime_type FROM ".$dbPrix."binaryfile WHERE id=".$_GET['id'];
$result = @MYSQL_QUERY($query);
$data = @MYSQL_RESULT($result,0,"body");
$type = @MYSQL_RESULT($result,0,"mime_type");
Header( "Content-type: $type");
echo $data;
?>
...........................................................................
Der AJAX Request sieht so aus:
// Request senden
function setRequest() {
// Request erzeugen
if (window.XMLHttpRequest) {
request = new XMLHttpRequest(); // Mozilla, Safari, Opera
} else if (window.ActiveXObject) {
try {
request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
} catch (e) {
try {
request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
} catch (e) {}
}
}
// überprüfen, ob Request erzeugt wurde
if (!request) {
alert("Kann keine XMLHTTP-Instanz erzeugen");
return false;
} else {
var url = "./mods/function/imager.php";
// Request öffnen
request.open('post', url, true);
// Request senden
request.send(null);
// Request auswerten
request.onreadystatechange = interpretRequest;
}
}
// Request auswerten
function interpretRequest() {
switch (request.readyState) {
// wenn der readyState 4 und der request.status 200 ist, dann ist alles korrekt gelaufen
case 4:
if (request.status != 200) {
alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
} else {
var nutshell = request.responseText;
// den Inhalt des Requests in das <div> schreiben
document.getElementById('nutshell').innerHTML = nutshell;
}
break;
default:
break;
}
}
function refresh () {
setRequest();
if (nutshell == "4") {
alert(nutshell);
}
}
refresh();
..........................................................................
Der untere Teil des AJAX Request führt zumindestens dazu das überhaupt was geladen wird, aber ich glaube das ich da was falschmache(ist halt mein erster gehversuch mit AJAX Request)