innerHtml Problem
Thor05
- javascript
0 tami0 Thor050 Jens Holzkämper0 Thor050 Matthias Apsel0 Thor05
0 Matthias Apsel0 tami
0 dave0 tami
Hallo,
ich habe ein Problem mit Javascript, mit dem ich nicht fertig werde.
Ich versuche eine durch Ajax erstellte Tabelle in einem Div darzustellen, jedoch wird diese nicht angezeigt.
Die Ajax Abfrage funktioniert soweit, denn ich kann mitholfe von alert() die Tabelle ausgeben lassen.
Ich hoffe ihr könnt mir weiterhelfen.
Hier der Quellcode der HTML Datei mit Suche:
<?php
session_start();
require ("connect.php");
require ("functions.php");
if (!isset($_SESSION["loggedIn"]) || !isset($_SESSION["userName"])) {
header('Location: index.php?fehler=Bitte%20einloggen');
die("Fuck You!");
}
if ($_SESSION["loggedIn"] != TRUE) {
header('Location: index.php?fehler=Bitte%20einloggen');
die("Fuck You!");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link type="text/css" rel="stylesheet" href="style.css" />
<script src="javaFunctions.js" type="text/javascript"></script>
<title>Q.S.</title>
</head>
<body>
<div id="master">
<div id="top">
<h1 class="mid"><a href="home.php">xxxxxxx</a></h1>
</div>
<div id="content">
<p>
Suchbegriff: <input type="text" onkeyup="searchName(this.value)"/>
</p>
<div id="jsSearch"></div>
</div>
</div>
</body>
</html>
Hier der Quellcode der JS Datei
var text = '';
var xmlHttp = null;
function searchName(string){
try {
// Mozilla, Opera, Safari sowie Internet Explorer (ab v7)
xmlHttp = new XMLHttpRequest();
} catch(e) {
try {
// MS Internet Explorer (ab v6)
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
try {
// MS Internet Explorer (ab v5)
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
xmlHttp = null;
}
}
}
if(xmlHttp){
xmlHttp.open('GET', 'search_server.php?string=' + escape(string), true);
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState == 4){
document.getElementById('jsSearch').innerHtml = xmlHttp.responseText;
}
}
xmlHttp.send(null);
}
}
hi,
naja, ich würde es erstmal mit dem innerHTML ohne den ajax-krempel probieren. Du verrätst zudem nicht, was in xmlHttp.responseText nun wirklich steht ...;
mfg
tami
Also auch ohne den "Avax-Krempel" funktioniert es nicht.
Selbst wenn ich
document.getElementById('jsSearch').innerHtml = xmlHttp.responseText;
Zu
document.getElementById('jsSearch').innerHtml = "Blabla";
Ändere passiert nichts.
Die search_server.php
<?php
session_start();
require ("connect.php");
require ("functions.php");
if (!isset($_SESSION["loggedIn"]) || !isset($_SESSION["userName"])) {
header('Location: index.php?fehler=Bitte%20einloggen');
die("Fuck You!");
}
if ($_SESSION["loggedIn"] != TRUE) {
header('Location: index.php?fehler=Bitte%20einloggen');
die("Fuck You!");
}
if (isset($_GET["string"])) {
?>
<table class="mid">
<?php
$string = mysql_real_escape_string($_GET["string"]);
$array = array("geheim:D");
for ($i = 0; $i <= 4; $i++) {
$tableName = $array[$i] . "s";
$nameCol = $array[$i] . "Name";
$idCol = $array[$i] . "Id";
$query = mysql_query("SELECT * FROM $tableName WHERE $nameCol LIKE '%$string%'");
while ($row = mysql_fetch_object($query)) {
?>
<tr>
<td><a href="showobject.php?id=<?php echo htmlspecialchars($row->$idCol); ?>&type=<?php echo htmlspecialchars($array[$i]); ?>"><?php echo htmlspecialchars($row->$nameCol); ?></a></td>
</tr>
<?php
}
}
?>
</table>
<?php
} else {
?>
<p>
Bitte Objekt zum Suchen auswählen.
</p>
<?php
}
exit;
?>
Tach,
Also auch ohne den "Avax-Krempel" funktioniert es nicht.
ereicht denn dein Ajax überhaupt readyState 4 und feuert das Event überhaupt? Wie sieht die Antwort aus, speziell der HTTP-Status-Code?
mfg
Woodfighter
Ja, es erreicht Status 4, denn wenn ich dort einen alert() einbaue, der den xmlHttp.responseText ausgibt, funktioniert es einwandfrei.
Ja, die JS datei ist im Head eingebunden. Und da in der Fehlerkonsole kein Fehler ausgegeben wird, denke ich auch, dass er das DIV findet.
Om nah hoo pez nyeetz, Thor05!
Ja, die JS datei ist im Head eingebunden. Und da in der Fehlerkonsole kein Fehler ausgegeben wird, denke ich auch, dass er das DIV findet.
Es wird also ausgeführt, _bevor_ der body zusammengebaut wird.
Matthias
Om nah hoo pez nyeetz, Thor05!
Ja, die JS datei ist im Head eingebunden. Und da in der Fehlerkonsole kein Fehler ausgegeben wird, denke ich auch, dass er das DIV findet.
Es wird also ausgeführt, _bevor_ der body zusammengebaut wird.
Matthias
Auch das verschieben der Einbindung der JS Datei vor das schließende Body Tag bringt keinen Erfolg
Om nah hoo pez nyeetz, Thor05!
bist du sicher, dass document.getElementById('jsSearch')
überhaupt was finden kann? Wo wird das JS eingebunden? Im head? Schlecht. Vor dem schließenden body-tag?
Matthias
hi,
vielleicht musst du innerHTML schreiben?
das da funzt:
<div id="test">bla</div>
<button onclick="document.getElementById('test').innerHTML='blub'">button</button>
mfg
tami
Hi,
document.getElementById('jsSearch').innerHtml = xmlHttp.responseText;
innerHtml vs. innerHTML
~dave
hi,
Hi,
document.getElementById('jsSearch').innerHtml = xmlHttp.responseText;
innerHtml vs. innerHTML
~dave
mfg
tami