Ich folge diesem Tutorial https://openenergymonitor.org/emon/node/107. Was ich versuche zu tun ist, verwenden Sie jquery und PHP, um Daten aus einer MySQL-Datenbank zu erhalten. Ich habe genau das getan, was das Tutorial gesagt hat, aber ich kann es nicht funktionieren lassen. Ich bekomme die Fehlermeldung, wenn ich die Seite lade. DieseAjax jquery post script funktioniert nicht
ist das, was ich getan habe:
api.php:
$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
$selected = mysql_select_db($db,$dbhandle)
or die("Could not select examples");
$result = mysql_query("SELECT * FROM todolist");
$array = mysql_fetch_row($result);
echo json_encode($array);
(. Ich weiß, dass es besser ist, PDO
zu verwenden, aber das ist nur zum Testen)
Das jquery-Skript:
<script language="javascript" type="text/javascript">
$(function() {
$.ajax({
url: 'api.php', data: "", dataType: 'json',
success: function(data) {
var id = data[0];
var description = data[1];
$('#output').html("<b>id: </b>"+id+"<b> description: </b>"+description);
},
error: function() {
alert("Fail");
}
});
});
</script>
Als ich api.php
besuchen das ist, was ich bekommen:
["161","true","werken\n","12"]
wenn ich console.log (Argumente) verwenden, um dies zeigt sich:
[Object, "parsererror", SyntaxError: Unexpected token < in JSON at position 0 at Object.parse (native) at parseJSON …]
0
:
Object
1
:
"parsererror"
2
:
SyntaxError: Unexpected token < in JSON at position 0 at Object.parse (native) at parseJSON (https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js:16:11709) at b$ (https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js:16:1382) at w (https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js:18:8326) at XMLHttpRequest.d (https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js:18:14247)
callee
:
(err)
length
:
3
Symbol(Symbol.iterator)
:
values()
__proto__
:
Object
Ich versuche, etwa 3 bis machen diese Arbeit für Stunden jetzt, und es macht mich ziemlich verrückt. Ich hoffe, dass jemand das Problem mit meinem Skript erklären kann.
Edit:
ich es fest. Es gab ein Problem mit einer Seite in der api.php.
Drücken Sie F12 in Ihrem Browser, um die Netzwerkanforderung anzuzeigen, stellen Sie sicher, dass keine Fehler vorhanden sind, und es sieht so aus, als würden Sie erwarten, und prüfen Sie, ob dort Fehler vorhanden sind. Statt 'alert (" Fail ")' könntest du 'console.log (arguments)' machen, um alle Informationen zu sehen, die an die 'error' Funktion übergeben wurden, um zu sehen, ob dir irgendetwas angezeigt wird. –
Was sehen Sie in der Entwicklerkonsole? Dies ist auch GET-Anfrage, nicht POST. – sed
BTW, es sieht nicht so aus als wäre die Beschreibung in 'data [1]', sondern in 'data [2]'. Sie sollten entweder die gewünschten Spalten auswählen oder mysql_fetch_assoc verwenden, um auf die Spalten nach Namen zugreifen zu können. – Barmar