Webseite mit AJAX funktioniert lokal, aber nicht im Web

Hallo Community,

ich habe folgendes kleines Problem: Mit PHP und AJAX habe ich mir eine dynamische Seite gebastelt und lokal auf einem XAMPP-Server getestet. Da lief alles wunderbar, der Seiteninhalt wurde ausgetauscht, ohne dass ein Neuladen nötig war. Anschließend habe ich die Dateien auf den Webserver bei bplaced kopiert und die entsprechende Seite aufgerufen. Als ich dann auf die Links geklickt habe, hat sich an der Seite nichts geändert. Mit dem IE-Entwicklertool habe ich dann geschaut, ob das Javascript aufgerufen wurde. Dem ist so. Leider kann ich den Ablauf nach dem http.send() nicht weiterverfolgen.
Hat jemand vielleicht eine Idee woran es liegen könnte?

suchen.js

[code]function suchen() {
var h_suchstring = document.f_selIndexAuswahl.i_suchen.value;
var h_index = encodeURIComponent(document.f_selIndexAuswahl.s_indexAuswahl.selectedIndex);
var h_indexAuswahl = document.f_selIndexAuswahl.s_indexAuswahl.options[h_index].value;
var h_spalte = document.f_sortieren.spalte.value;
var h_reihenfolge = document.f_sortieren.sortieren.value;
var img_Name_val = document.f_sortieren.img_Name.value;
var img_PunkteNeu_val = document.f_sortieren.img_PunkteNeu.value;
var bildpfad = document.f_sortieren.img_Bp.value;

	var url = "../Frontend/wpuebersicht.php"+'?'+Math.random();
	var params = "h_index="+h_index+"&h_indexAuswahl="+h_indexAuswahl+"&h_suchstring="+h_suchstring+
				"&h_reihenfolge="+h_reihenfolge+"&h_spalte="+h_spalte+
				"&img_Name_val="+img_Name_val+"&img_PunkteNeu_val="+img_PunkteNeu_val+"&img_Bp="+bildpfad;
	http.open('post', url, true);
	
	//Send the proper header infomation along with the request
	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http.setRequestHeader("Content-length", params.length);
	http.setRequestHeader("Connection", "close");

	http.onreadystatechange = handler;
	http.send(params);
}[/code]

Danke für jede Hilfe! :slight_smile:

Da fehlt aber noch einiges an Code. Wo wird z.B. die xhr-Instanz erzeugt?
Zeig uns lieber ein online-Beispiel.

Hi,

der erste große Fehler :wink: Du richtest dich an den Internet Explorer. Wenn du etwas aufwändigers mit Javascript machen möchtest dann probiers erst einmal mit einem gescheiten Browser laufen zu bekommen und wenn des dann 100% läuft dann kümmerst dich um den schmarrn von Browser (IE).

Teste deine Seite mal mit dem Firefox (und ggf. auch mit der mitgebrachten Fehlerkonsole von FF).

Beachte außerdem das hier auf bplaced zwischen groß und kleinschreibung in den dateinamen unterschieden wird.
phpinfo.bplaced.net/hallo/script.js

Desweiteren wäre vill. ne Livedemo zum selber anschauen hilfreich.

lg flo

Hier der Rest vom .js

[code]function getHTTPObject() {
var http = false;
//Use IE’s ActiveX items to load the file.
if(typeof ActiveXObject != ‘undefined’) {
try {http = new ActiveXObject(“Msxml2.XMLHTTP”);}
catch (e) {
try {http = new ActiveXObject(“Microsoft.XMLHTTP”);}
catch (E) {http = false;}
}
//If ActiveX is not available, use the XMLHttpRequest of Firefox/Mozilla etc. to load the document.
} else if (XMLHttpRequest) {
try {http = new XMLHttpRequest();}
catch (e) {http = false;}
}
return http;
}
var http = getHTTPObject();

function handler() {//Call a function when the state changes.
	if(http.readyState == 4 && http.status == 200) {
		document.getElementById("values").innerHTML = http.responseText;
	}
}

	function suchen() {
	var h_suchstring 	= document.f_selIndexAuswahl.i_suchen.value;
	var h_index 		= encodeURIComponent(document.f_selIndexAuswahl.s_indexAuswahl.selectedIndex);
	var h_indexAuswahl 	= document.f_selIndexAuswahl.s_indexAuswahl.options[h_index].value;
	var h_spalte 		= document.f_sortieren.spalte.value;
	var h_reihenfolge 	= document.f_sortieren.sortieren.value;
	var img_Name_val	= document.f_sortieren.img_Name.value;
	var img_PunkteNeu_val = document.f_sortieren.img_PunkteNeu.value; 
	var bildpfad 		= document.f_sortieren.img_Bp.value;
			
	var url = "../Frontend/wpuebersicht.php"+'?'+Math.random();
	var params = "h_index="+h_index+"&h_indexAuswahl="+h_indexAuswahl+"&h_suchstring="+h_suchstring+
				"&h_reihenfolge="+h_reihenfolge+"&h_spalte="+h_spalte+
				"&img_Name_val="+img_Name_val+"&img_PunkteNeu_val="+img_PunkteNeu_val+"&img_Bp="+bildpfad;
	http.open('post', url, true);
	
	//Send the proper header infomation along with the request
	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http.setRequestHeader("Content-length", params.length);
	http.setRequestHeader("Connection", "close");

	http.onreadystatechange = handler;
	http.send(params);
}[/code]

Der Aufruf aus der .php

<select name="s_indexAuswahl" onchange="suchen()"> <option value="alle">Alle</option> <option value="DAX">DAX</option> <option value="MDAX">MDAX</option> </select>

Ebenfalls in der Datei enthalten

Un in der .php Seite, die die Anfrage entgegen nimmt steht in etwa

http://levermann-system.bplaced.de/frontend/wpuebersicht.php

Getestet habe ich bereits mit IE, Firefox und Opera (im Opera habe ich mir durch das Setzen von charset zudem die Zeichenkodierung zerschossen…).

Danke für den Tip mit Case-Sensitivität der DAteinamen, leider hat das nichts gebracht…

wpuebersicht.php existiert nicht.

Du hast auch frontend einmal groß und einmal klein geschrieben…

Hab ich geändert in der .js Datei, hab auch den Cache des Browsers gelöscht und dennoch hat er die Großschreibung drin… ???

und auch hochgeladen? :wink:

und hochgeladen :slight_smile:
Ich kann ja auch mit meinem Programmiertool schauen, was in der Datei steht und dort steht eindeutig frontend und nicht Frontend…

Lass das “…/frontend/” doch mal ganz weg, das ist doch eh überflüssig, wenn du dich im selben Verzeichnis befindest.

Übrigens hast du url 2 mal definiert.

Zeile 30:var url = "../frontend/wpuebersicht.php";
Zeile 47:var url = "../Frontend/wpuebersicht.php"+'?'+Math.random();

GELÖST Vielen Dank für die Tips. Mir ist auch grad aufgefallen, dass es 2 mal drinsteht… Sorry und danke