【问题标题】:How to return contents of php using javascript $.get如何使用 javascript $.get 返回 php 的内容
【发布时间】:2017-01-14 00:21:39
【问题描述】:

我在工作的 LAMP 服务器的根目录中托管了一个 PHP 脚本,它为我提供了 MySQL 查询的输出。 values.php 的典型输出:

2017-01-12 22:02:17/12/2017-01-12 22:03:18/12/2017-01-12 22:04:18/12/2017-01-12 22:05:18/12/2017-01-12 22:06:18/12/2017-01-12 22:07:19/12/2017-01-12 22:08:19/12/2017-01-12 22:09:19/12/2017-01-12 22:10:20/12/2017-01-12 22:11:20/12/2017-01-12 22:12:20/12/2017-01-12 22:13:21/12/2017-01-12 22:14:21/12/2017-01-12 22:15:21/12/2017-01-12 22:16:21/12/2017-01-12 22:17:22/12/2017-01-12 22:18:22/11/2017-01-12 22:19:22/11/2017-01-12 22:20:23/12/2017-01-12 22:21:23/11/2017-01-12 22:22:23/11/2017-01-12 22:23:24/11/2017-01-12 22:24:24/11/2017-01-12 22:25:24/11/2017-01-12 22:26:25/11/2017-01-12 22:27:25/11/2017-01-12 22:28:25/11

我正在尝试使用$.get 将其分解并在页面上列出。我的代码如下,但它不起作用:

<!DOCTYPE html>
<html>
<body>
<script>
function() {

    var switch1 = true;

    $.get('values.php', function(data) {
        data = data.split('/');
        for (var i in data)
        {
            if (switch1 == true)
            {
                document.write(data[i] + " Temp: ");
                switch1 = false;
            }
            else
            {
                document.writeln(data[i]);
                switch1 = true;
            }
        }
    });
};
</script>
</body>
</html>

任何想法我哪里出错了?

【问题讨论】:

  • 你检查data是否真的有价值?
  • 使用Mysql的UNIX_TIMESTAMP()、PHP的JSON_ENCODE()和JavaScript的JSON.parse(),你的生活会轻松很多。
  • 谢谢。我将查看 JSON_ENCODE() 和 JSON.parse()。源数据来自 ESP8266,用作 RPi LAMP 上 MySQL 数据库的数据记录器,所以我怀疑我是否会使用 unix 时间戳,因为它与实际采集样本时不匹配。
  • 你包含 jquery 了吗?
  • 解决了!!非常感谢大家,对于这么简单的事情,我感到如此愚蠢。我有书:Learning_PHP__MySQL___JavaScript_With_jQuery__CSS___HTML5__4th_Edition 从亚马逊订购,希望有一天我能够回馈社区!

标签: javascript php mysql get


【解决方案1】:

我应该在 html 中添加代码 &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jque‌​ry.min.js"&gt;&lt;/script&gt;。最终代码如下,运行良好:

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<script>
    var switch1 = true;

    $.get('values.php', function(data) {
        data = data.split('/');
        for (var i in data)
        {
            if (switch1 == true)
            {
                document.write(data[i] + " Temp: ");
                switch1 = false;
            }
            else
            {
                document.write(data[i] + "<br>");
                switch1 = true;
            }
        }
    });
</script>
</body>
</html> 

谢谢大家。

【讨论】:

    【解决方案2】:

    我不知道您的 PHP 脚本实际返回什么,但如果我手动存储到 data,它似乎可以按您预期的方式工作。你能解释一下究竟是什么不起作用吗?

    我会缩短代码位:

    var switch1 = true;
    
    var data = "2017-01-12 22:02:17/12/2017-01-12 22:03:18/12/2017-01-12 22:04:18/12/2017-01-12 22:05:18/12/2017-01-12 22:06:18/12/2017-01-12 22:07:19/12/2017-01-12 22:08:19/12/2017-01-12 22:09:19/12/2017-01-12 22:10:20/12/2017-01-12 22:11:20/12/2017-01-12 22:12:20/12/2017-01-12 22:13:21/12/2017-01-12 22:14:21/12/2017-01-12 22:15:21/12/2017-01-12 22:16:21/12/2017-01-12 22:17:22/12/2017-01-12 22:18:22/11/2017-01-12 22:19:22/11/2017-01-12 22:20:23/12/2017-01-12 22:21:23/11/2017-01-12 22:22:23/11/2017-01-12 22:23:24/11/2017-01-12 22:24:24/11/2017-01-12 22:25:24/11/2017-01-12 22:26:25/11/2017-01-12 22:27:25/11/2017-01-12 22:28:25/11"
    
    data = data.split('/').map(function(i){
      document.write(i + (switch1 ? " Temp: " : ""));
      switch1 = !switch1;
    });

    【讨论】:

    • 嗨。我做了一个类似的测试,似乎$.get 位不工作,字符串硬编码它工作正常。 PHP 只是根据我的原始帖子返回一个长字符串,没有其他信息。
    • 使用 $.get 会出现以下 console.log(data) 错误:Uncaught ReferenceError: $ is not defined at index2.html:8
    • @EdwardHammock,页面中似乎没有正确包含 JQuery。它要么根本不包含,要么不正确(通过document.onLoad
    【解决方案3】:

    试试这个,应该做你正在寻找的......

    var content = "2017-01-12 22:02:17/12/2017-01-12 22:03:18/12/2017-01-12 22:04:18/12/2017-01-12 22:05:18/12/2017-01-12 22:06:18/12/2017-01-12 22:07:19/12/2017-01-12 22:08:19/12/2017-01-12 22:09:19/12/2017-01-12 22:10:20/12/2017-01-12 22:11:20/12/2017-01-12 22:12:20/12/2017-01-12 22:13:21/12/2017-01-12 22:14:21/12/2017-01-12 22:15:21/12/2017-01-12 22:16:21/12/2017-01-12 22:17:22/12/2017-01-12 22:18:22/11/2017-01-12 22:19:22/11/2017-01-12 22:20:23/12/2017-01-12 22:21:23/11/2017-01-12 22:22:23/11/2017-01-12 22:23:24/11/2017-01-12 22:24:24/11/2017-01-12 22:25:24/11/2017-01-12 22:26:25/11/2017-01-12 22:27:25/11/2017-01-12 22:28:25/11";
    
    var regexp = /(\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2})\/(\d{2})/g;
    
    var matches;
    
    while ( matches = regexp.exec( content ) ) {
      document.write( matches[1] + " Temp: " + matches[2] + "<br/>");
    }

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-08
      • 1970-01-01
      • 1970-01-01
      • 2016-11-11
      • 1970-01-01
      • 1970-01-01
      • 2020-01-10
      • 2018-05-03
      相关资源
      最近更新 更多