webentwicklung-frage-antwort-db.com.de

holen Sie sich Daten aus der MySQL-Datenbank zur Verwendung in Javascript

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.

14
user1892770

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.

20
wlangstroth

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?

  1. AJAX - Anfrage an PHP-Skript senden
  2. PHP-Skript verarbeitet Anforderungen und erstellt eine Tabelle
  3. Das PHP-Skript sendet die Antwort in Form von kodiertem HTML an JS zurück
  4. JS nimmt die Antwort und fügt sie in das DOM ein
1
Matt

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.

1
Josh

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.

0
Mike Baranczak