【问题标题】:Getting information from the server for a Gadget (Vista/7)从服务器获取小工具的信息 (Vista/7)
【发布时间】:2010-01-28 16:46:43
【问题描述】:

大家好..
我想从我的数据库中获取一些信息并显示在我的侧边栏小工具中(我是小工具编码的新手)。我尝试了很多方法来做到这一点,但我还没有成功。
为此,我准备了一个 php 文件来从我的数据库(在服务器上)获取一些值,并且我想获取这个 php 文件的内容(结果)。

由于视觉原因,我不想使用 iframe。

其实,我可以按照任何方式去做。如;
直接从数据库获取数据(存在安全问题),从 php 获取指定文本(放入特殊 div 中的值)或获取 php 的所有内容并将样式放入侧边栏中,带/不带 GET、POST 方法或其他方法 :)
现在就谢谢...

注意:我知道(半专业)PHP、JavaScript、CSS,但我不知道 C#、VB 等。

【问题讨论】:

    标签: windows-desktop-gadgets


    【解决方案1】:

    您可以通过多种方式访问​​数据。第一种是直接使用 ADO,这是 Windows 内置的一个可以连接数据库的 COM 对象。这种方法有一些缺点,最重要的是它不是很安全 - 您的数据库用户名和密码必须以纯文本形式存储在小工具的脚本文件中以供任何人查看。如果设置了有限的权限,这并没有那么糟糕。

    大多数开发人员会结合使用 PHP 和 XMLHttpRequest()。正如您自己建议的那样,PHP 将根据请求从数据库中获取数据。 XMLHttpRequest 用于获取页面内容。您唯一需要决定的是输出数据的格式; XML、JSON 或其他东西。您的小工具可以解析 XML 和 JSON,因此其中任何一个都是不错的选择。如果您运行的是 PHP 5.2 或更高版本,那么 JSON support is native。从数据库中获取数据作为关联数组然后json_encode 并打印结果非常简单。

    XMLHttpRequest 示例

    var xhr = new XMLHttpRequest();
    xhr.open("GET", "http://mysite.com/test.php", true);
    xhr.onreadystatechange = function ()
    {
        // readyState 4 = complete, status 200 = HTTP OK
        if (xhr.readyState == 4 && xhr.status == 200)
        {
            parseData(JSON.parse(xhr.responseText)); // parse a JSON response
            // parseData(xhr.responseXML); // parse an XML response
        }
    }
    xhr.send();
    

    在安装了 IE8 的机器上运行的小工具可以原生使用 JSON.parse(),IE8 之前需要 eval() 数据或通过安全解析器运行它(其中大部分 eval 在确保数据是有效的 JSON 之后)。

    更多阅读:

    XMLHttpRequest Object (MSDN)
    JSON in JavaScript

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多