Получить данные из базы данных mysql для использования в javascript

У меня есть javascript, который динамически создает html-страницу. На странице html имеются текстовые поля для ввода пользователем информации. Информация уже существует в базе данных. Я хотел бы заполнить поля textarea базой данных в базе данных mysql. У меня есть php-код, который будет подключаться к базе данных и строить таблицу html с данными, поэтому я знаю, как это сделать с php, но я не знаю, как это сделать с javascrip. Я изучил запросы ajax и т.д., Но я все еще не уверен, как это сделать.

Ответ 1

Вероятно, самый простой способ сделать это - вернуть файл PHP в JSON. Итак, скажем, у вас есть файл 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);

Если вам ограничено использование document.write(как вы заметили в комментариях ниже), дайте своим полям атрибут id следующим образом: <input type="text" id="field1" />. Вы можете ссылаться на это поле с помощью этого jQuery: $("#field1").val().

Вот полный пример с HTML. Если мы предполагаем, что ваши поля называются field1 и field2, то

<!DOCTYPE html>
<html>
  <head>
    <title>That 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>

Эта вставка после HTML была построена, что может быть проще всего. Если вы хотите заполнять данные во время динамической конструирования HTML, вы все равно хотите, чтобы файл PHP возвращал JSON, вы просто добавили бы его непосредственно в атрибут value.

Ответ 2

Чтобы сделать с javascript, вы можете сделать что-то вроде этого:

<script type="Text/javascript">
var text = <?= $text_from_db; ?>
</script>

Затем вы можете использовать все, что хотите, в своем javascript, чтобы поместить текст var в текстовое поле.

Ответ 3

Вам действительно нужно "построить" его из javascript или вы можете просто вернуть встроенный HTML из PHP и вставить его в DOM?

  • Отправьте запрос AJAX на PHP скрипт
  • PHP script обрабатывает запрос и строит таблицу
  • PHP script отправляет ответ обратно в JS в виде закодированного HTML
  • JS принимает ответ и вставляет его в DOM

Ответ 4

Вы не можете сделать это только с помощью Javascript. Вам понадобится серверный код (PHP, в вашем случае), который служит прокси-сервером между БД и клиентским кодом.