从mysql数据库获取数据以在javascript中使用

时间:2011-04-06 15:32:12

标签: javascript mysql database ajax

我有一个动态构建html页面的JavaScript。在html页面中有用于输入信息的textarea框。信息已经存在于数据库中。我想用mysql数据库中的数据库填充textarea框。 我有PHP代码将连接到数据库并构建一个带有数据的html表,所以我知道如何使用PHP,但我不知道如何从javascrip这样做。我已经研究了ajax get requests等,但我仍然不确定如何做到这一点。

4 个答案:

答案 0 :(得分:20)

可能最简单的方法是让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的完整示例。如果我们假设您的字段被称为field1field2,那么

<!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>

在构建HTML之后插入,这可能是最简单的。如果您想在动态构建HTML时填充数据,那么您仍然希望PHP文件返回JSON,您只需将其直接添加到value属性中。

答案 1 :(得分:1)

使用javascript你可以做这样的事情:

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

然后,您可以在javascript中使用任何内容将text var放入文本框中。

答案 2 :(得分:1)

你真的需要从javascript“构建”它,还是只需从PHP返回构建的HTML并将其插入到DOM中?

  1. 将AJAX请求发送到php脚本
  2. PHP脚本处理请求和构建表
  3. PHP脚本以编码HTML的形式将响应发送回JS
  4. JS接受响应并将其插入DOM

答案 3 :(得分:0)

不能只使用Javascript。您需要一些服务器端代码(在您的情况下为PHP),它充当数据库和客户端代码之间的代理。