Ich entwickle eine Anwendung, die einen Ajax-Aufruf an ein PHP-Skript ausführt, das json_encode
Daten zurückgibt.JSON parse error - Uncaught TypeError: Kann 'in' Operator nicht verwenden, um nach '1009' zu suchen
Die Daten werden wie erwartet von PHP zurückgegeben. Aber wenn man versucht, es in Jquery zu analysieren Ich erhalte eine Konsole Fehler:
Uncaught TypeError: Cannot use 'in' operator to search for '1009'
durch eine Kopie meiner Datenarray gefolgt.
Ein Beispiel für die JSON-Daten codiert ist hier:
[
{"u_id":"21747","fname":"Andy","lname":"","email":"[email protected]"},
{"u_id":"3748","fname":"John","lname":"","email":"[email protected]"},
{"u_id":"451750","fname":"Peter","lname":"","email":"[email protected]"},
]
Die jquery Ich verwende wie folgt ist. Die gewünschte Ausgabe ist für sich neben ein tickbox eine Liste von Personen der E-Mail-Adressen anzuzeigen:
$(function() {
$('#myModal').on('shown.bs.modal', function() {
$(".modal-body").html("Loading...");
$.ajax({
url: "<?= $router->pathFor('/admin/ajax/find-user'); ?>",
data: {
searchInput: $('#searchInput').val()
},
method: "POST",
}).done(function(data) {
//$(".modal-body").html(data);
$.parseJSON(data);
$.each(data, function(key, value){
$(".modal-body").html('<input type="checkbox" id="' + value.u_id + '">' + value.email + "<br>");
});
});
});
});
Was mit dieser falsch ist, und was macht den Fehler Mittelwert (ich kann 1009 überall in meinen Daten nicht sehen, obwohl nicht sicher, ob das, was es eigentlich bedeutet)
* "Ich zeige nur den .done Teil der Kürze" * Zu viel Kürze. Was sind Daten? Woher kommt es? Wenn Sie es über 'ajax' laden und es mit einem passenden' Content-Type'-Header zurückgeben, wurde es wahrscheinlich in ein Array von Objekten geparst, aber ... –
Do 'console.log (data);' und einfügen Ihre Ausgabe in Frage gestellt. – divix
@ T.J.Crowder aktualisiert, um volle jQuery im Einsatz zu zeigen – Andy