So verwende ich jquery, ajax und php Abfragen und Anzeigen von Daten aus der Datenbank. Ich reiche Daten auf der Ajax-Seite ein, wie unten gezeigt.Iterating durch Ajax Anfrage basierend auf dem Status der spezifischen Schlüssel
Senden Ajax Anfrage
$('#mainInput').keydown(function(e) {
if (e.keyCode == 13 || e.keyCode == 9) {
//Text after hitting enter button
var user_id = "<?php echo $user_id; ?>";
$.ajax({
type: 'POST',
url: 'ajax_get_code.php',
data: {mainInput: $("#mainInput").val(),
id : user_id},
datatype:"json",
success: function(response) {
var parsedData = jQuery.parseJSON(response);
$.each(parsedData, function(index){
if (parsedData.value2 == null){
$("#mainInput").val(parsedData.value);
$("#secondaryInput").val(parsedData.value);
}
else {
$("#mainInput").val(parsedData.value);
$("#secondaryInput").val(parsedData.value2);
}
});
},
error: function(xhr, status, error){
alert("Error!" + xhr.status);
}
});
e.preventDefault();
}
});
auf der Prozessanforderung Seite ich die Zeichenfolge explodierte die Vorlage zu trennen dieses Zeichen basierend auf „“. damit ein Benutzer mehrere Abfragen gleichzeitig ausführen kann.
Ajax Prozess Anfrage
<?php
require_once("class.codes.php");
$userCode= $_POST['mainInput'];
$user_id = $_POST['id'];
$removeSpace = str_replace(' ','', $userCode);
$parts = explode(",", $removeSpace);
foreach($parts as $part){
$all_codes = New CODES;
try
{
$stmt = $all_codes->runQueryTwo("SELECT user_code, user_text FROM codes WHERE user_code=:userCode AND user_id=:user_id");
$stmt->execute(array(':userCode'=>$part, ':user_id'=>$user_id));
$row=$stmt->fetch(PDO::FETCH_ASSOC);
//result
$user_text = $row['user_text'];
echo json_encode(array("value"=>$part,"value2"=>$user_text));
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
?>
Als ich die Anfrage Konsolprotokoll die .parseJson Bibliothek und nur eine Abfrage übergeben ich die richtige Antwort bekommen, und es füllt die Textfelder entsprechend. Wenn ich jedoch mehrere Schlüssel übergebe, die durch "," getrennt sind, bekomme ich nichts zurück. Kein Fehler, nichts.
Allerdings, wenn ich die Anfrage mit mehreren Abfragen ohne die Verwendung der .parseJson-Bibliothek Konsole protokollieren, bekomme ich die richtige Antwort, die wie die Beispieldaten unten aussieht.
{"value":"backbone","value2":"backbone, fixed."}{"value":"james","value2":"james"}{"value":"john","value2":null}
Das ist richtig, aber ich will jetzt alle die Tasten „Wert“ in dem mainInput Textfeld und die Tasten „Wert2“ im secondaryInput anzuzeigen. Es sollte einige durchgehen, bis es keine Schlüsselwertpaare mehr gibt.
Ich habe versucht, mit der for-Schleife und wenn ich eine Abfrage senden, gibt es das doppelte der Schlüsselwertpaare.
Ich bin neu zu PHP und Ajax bitte helfen, wie ich den ganzen Tag Forschung und Dinge versucht habe. Ich habe auch eine while-Schleife ausprobiert und es läuft einfach unendlich.
Statt 'var parsedData = jQuery.parseJSON (Antwort);' können Sie versuchen, 'var analysedData = JSON.parse (Antwort);' –
Es funktioniert immer noch nur mit einer Abfrage. – CoderPoet