Ich habe eine jQuery-Funktion, die einen AJAX-Aufruf an eine PHP-Datei sendet, um den ausgewählten Wert eines Dropdown-Menüs zu überprüfen und diesen Wert aus der DB zurückzugeben.AJAX-Aufruf mit JSON-Datentyp gibt undefined zurück
jQuery (document).ready(function() {
$("#country").change(function() {
country = $("#country").val();
$.ajax({
type: "POST",
url: "script.php",
dataType: "json",
data: $("#address").serialize(),
success: function(data) {
alert(data.code);
},
});
return false;
});
});
Problem entweder mit:
alert(data[0].code)
PHP-Code:
$country = $_POST["country"];
$stmt = $db -> prepare("SELECT * FROM country WHERE name = :country");
$stmt -> execute(array(":country" => $country));
$rows = $stmt -> fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as $row)
{
$code = $row["code"];
}
echo json_encode($code);
Problem entweder mit:
echo json_encode(array(":code" => $code));
Der PHP-Skript funktioniert gut, wie es true zurück Wert. Auch wenn ich die Mozilla-Konsole überprüfe, sendet der AJAX-Aufruf die Anfrage korrekt an das PHP-Skript und es erhält auch einen Rückgabewert, aber ich bekomme immer noch undefined
mit Alarm.
Sie müssen 'parseJSON' wie' var gewöhnungs obj = $ .parseJSON (Daten); Warnung (obj.code) '. –
Ich habe deine Lösung zu einer Community-Wiki-Antwort gemacht. –