Ich habe ein Javascript, das dynamisch eine HTML-Seite aufbaut. Auf der HTML-Seite gibt es Textfelder, in die der Benutzer Informationen eingeben kann. Die Informationen sind bereits in einer Datenbank vorhanden. Ich möchte die Textfeld-Felder mit der Datenbank in der MySQL-Datenbank auffüllen. Ich habe PHP-Code, der eine Verbindung zur Datenbank herstellt und eine HTML-Tabelle mit den Daten erstellt, so dass ich weiß, wie dies mit PHP geschieht, aber ich Ich weiß nicht, wie man das aus dem Javascrip macht. Ich habe Ajax-Anfragen erhalten, etc., bin mir aber noch nicht sicher, wie ich das machen soll.
Der einfachste Weg, dies zu tun, ist wahrscheinlich, dass eine PHP-Datei JSON zurückgibt. Nehmen wir an, Sie haben eine Datei query.php
,
$result = mysql_query("SELECT field_name, field_value
FROM the_table");
$to_encode = array();
while($row = mysql_fetch_assoc($result)) {
$to_encode[] = $row;
}
echo json_encode($to_encode);
Wenn Sie sich auf document.write beschränken (wie Sie in den Kommentaren unten beachten), geben Sie Ihren Feldern ein id-Attribut wie folgt: <input type="text" id="field1" />
. Sie können dieses Feld mit dieser jQuery referenzieren: $("#field1").val()
.
Hier ist ein vollständiges Beispiel mit dem HTML. Wenn wir davon ausgehen, dass Ihre Felder field1
und field2
heißen, dann
<!DOCTYPE html>
<html>
<head>
<title>That's about it</title>
</head>
<body>
<form>
<input type="text" id="field1" />
<input type="text" id="field2" />
</form>
</body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script>
$.getJSON('data.php', function(data) {
$.each(data, function(fieldName, fieldValue) {
$("#" + fieldName).val(fieldValue);
});
});
</script>
</html>
Das ist das Einfügen, nachdem der HTML-Code erstellt wurde, was möglicherweise am einfachsten ist. Wenn Sie Daten füllen möchten, während Sie dynamisch HTML erstellen, möchten Sie, dass die PHP -Datei JSON zurückgibt. Sie fügen diese also direkt in das value
-Attribut ein.
Müssen Sie es wirklich aus Javascript "erstellen", oder können Sie den erstellten HTML-Code einfach von PHP zurückgeben und in das DOM einfügen?
Um mit Javascript zu tun, könnten Sie so etwas tun:
<script type="Text/javascript">
var text = <?= $text_from_db; ?>
</script>
Dann können Sie das, was Sie möchten, in Ihrem Javascript verwenden, um den Text var in das Textfeld einzufügen.
Sie können nicht tun es nur mit Javascript. Sie benötigen serverseitigen Code (in Ihrem Fall PHP), der als Proxy zwischen der Datenbank und dem clientseitigen Code dient.