Hallo,
ich bin noch absoluter Anfänger was das Zusammenspiel mit Ajax und PHP betrifft. Nun habe ich mein erstes Projekt erstellt und gleich ein Problem, was sich für mich als unlösbare Aufgabe herausgestellt hat.
Ich möchte ümit Ajax auf mein PHP-Skript zugreifen. Habe natürlich erst mal zwei Tutorial durchgearbeitet, jedoch bekomme ich keine Rückmeldung vom Server. => Mein XMLHttp-Objekt bleibt beim Status 0 stecken.
Hier mal ein paar Eckdaten:
HTML-Seite und Server befinden sich auf Localhost (verschiedene Ports)
IDE: Netbeans
XAMPP Control Panel mit Apache-Server
Mini-Beispiel:
%%%%%PHP-Skript%%%%%
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
/**
* Berechnet anhand von Groesse und Gewicht den BMI-Wert
* @param type $groesse
* @param type $gewicht
* @return type Gibt den BMI-Wert zurück
*/
function calcBMI($groesse, $gewicht)
{
$groesse *=$groesse;
$bmi = $gewicht / $groesse;
return number_format($bmi,2);
}
echo calcBMI($_GET['groesse'], $_GET['gewicht']);
?>
</body>
</html>
%%%% JavaScript %%%%
var xmlhttp;
function sendReq1()
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
//Zu Testzwecken erst mal so...
var adresse = "http://localhost/Uebung8_PHP/index.php?groesse=1.69&gewicht=200.00";
xmlhttp.open("GET",adresse,true);
xmlhttp.onreadystatechange = function(){
var bmi;
alert(xmlhttp.status);
if (xmlhttp.readyState==4 && xmlhttp.status==200) //Hier bleibt der Status auf 0
{
bmi = xmlhttp.responseText;
$("#sprechblase").text("Your BMI is "+bmi);
}
};
xmlhttp.send();
}
Ich habe folgende Test schon durchgeführt (Chrome, FF, IE)
-localhost durch 127.0.0.1 ersetzt
-Ajax-Objekt über jQuery erzeugt und versucht zu senden
-Firewall und Antivirus deaktiviert
-localhost mit Ports versehen
-Aufruf des Pfades im Browser (funktioniert)
-Netbeans und XAMPP als Admin starten
-Logs: php_error.log und Apache error.log angeschaut
Ja, der Server ist an. Wenn ich die Anfrage über ein Formular abschicke (submit), dann bekomme ich auch meinen Wert zurück.
Ganz ehrlich- ich bin ratlos und ich möchte doch so gerne, dass es funktioniert....
Vielen Dank schon mal im Voraus.
Viele Grüße
ich bin noch absoluter Anfänger was das Zusammenspiel mit Ajax und PHP betrifft. Nun habe ich mein erstes Projekt erstellt und gleich ein Problem, was sich für mich als unlösbare Aufgabe herausgestellt hat.
Ich möchte ümit Ajax auf mein PHP-Skript zugreifen. Habe natürlich erst mal zwei Tutorial durchgearbeitet, jedoch bekomme ich keine Rückmeldung vom Server. => Mein XMLHttp-Objekt bleibt beim Status 0 stecken.
Hier mal ein paar Eckdaten:
HTML-Seite und Server befinden sich auf Localhost (verschiedene Ports)
IDE: Netbeans
XAMPP Control Panel mit Apache-Server
Mini-Beispiel:
%%%%%PHP-Skript%%%%%
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
/**
* Berechnet anhand von Groesse und Gewicht den BMI-Wert
* @param type $groesse
* @param type $gewicht
* @return type Gibt den BMI-Wert zurück
*/
function calcBMI($groesse, $gewicht)
{
$groesse *=$groesse;
$bmi = $gewicht / $groesse;
return number_format($bmi,2);
}
echo calcBMI($_GET['groesse'], $_GET['gewicht']);
?>
</body>
</html>
%%%% JavaScript %%%%
var xmlhttp;
function sendReq1()
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
//Zu Testzwecken erst mal so...
var adresse = "http://localhost/Uebung8_PHP/index.php?groesse=1.69&gewicht=200.00";
xmlhttp.open("GET",adresse,true);
xmlhttp.onreadystatechange = function(){
var bmi;
alert(xmlhttp.status);
if (xmlhttp.readyState==4 && xmlhttp.status==200) //Hier bleibt der Status auf 0
{
bmi = xmlhttp.responseText;
$("#sprechblase").text("Your BMI is "+bmi);
}
};
xmlhttp.send();
}
Ich habe folgende Test schon durchgeführt (Chrome, FF, IE)
-localhost durch 127.0.0.1 ersetzt
-Ajax-Objekt über jQuery erzeugt und versucht zu senden
-Firewall und Antivirus deaktiviert
-localhost mit Ports versehen
-Aufruf des Pfades im Browser (funktioniert)
-Netbeans und XAMPP als Admin starten
-Logs: php_error.log und Apache error.log angeschaut
Ja, der Server ist an. Wenn ich die Anfrage über ein Formular abschicke (submit), dann bekomme ich auch meinen Wert zurück.
Ganz ehrlich- ich bin ratlos und ich möchte doch so gerne, dass es funktioniert....
Vielen Dank schon mal im Voraus.
Viele Grüße
Kommentar