【问题标题】:get data from mysql database to use in javascript从 mysql 数据库中获取数据以在 javascript 中使用
【发布时间】:2011-07-30 22:48:49
【问题描述】:

我有一个动态构建 html 页面的 javascript。在 html 页面中有文本框供用户输入信息。信息已经存在于数据库中。我想用 mysql 数据库中的数据库填充文本区域框。 我有 php 代码将连接到数据库并使用数据构建一个 html 表,所以我知道如何使用 php 执行此操作,但我不知道如何从 javascrip 执行此操作。我研究过ajax get requests等,但我仍然不确定如何做到这一点。

【问题讨论】:

    标签: javascript mysql database ajax


    【解决方案1】:

    您真的需要从 javascript 中“构建”它,还是可以简单地从 PHP 返回构建的 HTML 并将其插入到 DOM 中?

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

    【讨论】:

    • 感谢您的所有帮助。我将尝试将其作为 php 文件重新执行并从服务器运行代码并从 php 代码构建 html 页面,然后在构建 html 页面并填充来自的数据后转到 javascript 以获取其他功能数据库
    【解决方案2】:

    可能最简单的方法是让 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(正如您在下面的 cmets 中所指出的),则为您的字段提供一个 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 属性中即可。

    【讨论】:

    • 我已经尝试了很多次来添加我的代码是这个评论区使用“代码”和类似 [代码] 的变体,但所有代码都只是在一个大博客中结束。你知道我怎样才能让 mini-Markdown 格式适用于代码吗?我的问题是,我可以在我的 javascript 中间使用 jQuery 吗?就像在循环遍历行并创建文本区域框的函数中间一样。该代码使用 document.write 来制作表格行和单元格。
    • 在上面的 jQuery 中,我将哪些词替换为我的数据库的特定词。我留下“数据”吗?我是否将“key”替换为 FSymbol,它是 mySql 数据库中我正在提取的基金符号的值的列标题。我要替换“价值”吗?至于填充输入,我是这样写的吗:document.write(value);
    • 另外,我正在从我的硬盘驱动器运行 javascript,所以如果我添加 query.php 的完整路径,这将起作用,如下所示:http:\\www.mywebsite.com\query .php
    【解决方案3】:

    要使用 javascript,您可以执行以下操作:

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

    然后你可以在你的 javascript 中使用你想要的任何东西来将文本变量放入文本框。

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-07
        • 1970-01-01
        • 1970-01-01
        • 2018-03-24
        • 1970-01-01
        • 1970-01-01
        • 2012-08-16
        相关资源
        最近更新 更多