Woodz
Lieutenant
- Registriert
- Apr. 2009
- Beiträge
- 719
Hallo.
Ich bin ein wenig am verzweifeln und als letzte Hoffnung wollte ich mein Problem hier mal kurz schildern.
Ich möchte in einem JavaScript file mittels Ajax und php einen Datenbankabruf machen. Dabei soll das Ergebnis der Datenbankabfrage als json geparst werden:
Hier ist der wesentliche Inhalt meiner Javascript Datei:
Hier der Inhalt der "test.php":
Das Problem ist nun, dass ich zwar einen Statuscode 200 bei dem Request erhalte, aber der readyState Code = 2 ist.
Wenn ich mir den Output von this.responseText anschaue, dann erhalte ich nur den Inhalt der test.php Datei.
Ich hab es im php-file statt mit "PDO()" auch mit mysqli() versucht - gleiches Ergebnis.
Könnte das Problem in der Ausführbarkeit von PHP files liegen? Scheinbar wird ja nur das php-file geöffnet, aber der Inhalt nicht ausgeführt.
Beste Grüße
Ich bin ein wenig am verzweifeln und als letzte Hoffnung wollte ich mein Problem hier mal kurz schildern.
Ich möchte in einem JavaScript file mittels Ajax und php einen Datenbankabruf machen. Dabei soll das Ergebnis der Datenbankabfrage als json geparst werden:
- Als Webserver nutze ich nginx
- Datenban: MariaDB
- php ist installiert:
Code:
PHP 8.3.22 (cli) (built: Jun 9 2025 14:03:36) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.22, Copyright (c) Zend Technologies
with Zend OPcache v8.3.22, Copyright (c), by Zend Technologies
Hier ist der wesentliche Inhalt meiner Javascript Datei:
Javascript:
let ajax = new XMLHttpRequest();
let method = "GET";
let url = '../php/test.php';
let asynchronous = true;
ajax.open(method, url, asynchronous);
ajax.send();
ajax.onreadystatechange = function(){
if (this.readyState == 4 && this.status == 200){
let data = JSON.parse(this.responseText);
if (data.length != 0){
console.log(data);
else{
console.log('Abfrage leer');
}
else{
console.log(this.status, this.readyState);
}
Hier der Inhalt der "test.php":
PHP:
<?php
$pdo = new PDO('mysql: host=localhost;dbname=dbNAME;charset=utf8', 'USER', 'PWD');
$statement = $pdo->prepare("SELECT * FROM Tabelle;");
$statement.execute();
$results = $statement->fetchAll(\PDO::FETCH_ASSOC);
echo json_encode($results);
?>
Das Problem ist nun, dass ich zwar einen Statuscode 200 bei dem Request erhalte, aber der readyState Code = 2 ist.
Wenn ich mir den Output von this.responseText anschaue, dann erhalte ich nur den Inhalt der test.php Datei.
Ich hab es im php-file statt mit "PDO()" auch mit mysqli() versucht - gleiches Ergebnis.
Könnte das Problem in der Ausführbarkeit von PHP files liegen? Scheinbar wird ja nur das php-file geöffnet, aber der Inhalt nicht ausgeführt.
Beste Grüße