【问题标题】:need javascript or jquery function to wrap php code (window.setInterval bootstrap list group)需要 javascript 或 jquery 函数来包装 php 代码(window.setInterval 引导列表组)
【发布时间】:2015-02-14 08:20:17
【问题描述】:

感谢所有答案,似乎 AJAX 是解决方案,我会试一试。但是 JSON 呢? JSON 不是更好的解决方案吗?如果是,为什么 AJAX 更可取?

我正在寻找一种方法来每 5 秒更新这部分 php 代码,这将重新生成这个引导列表组。什么是这样做的好方法?我想我不能只将它包装在 window.setInterval 中,并且刷新整个页面不是一种选择。提前致谢。

<?php
    $i=0;
    // Display all room
    foreach ($rooms as $room) {
        $room_num = $room['room_num'];
        $room_type = $room['room_type'];
        $note = $room['note'];

        echo '
        <a class="list-group-item" >
            <h4 class="list-group-item-heading" id="room_num' .$i. '" ><p>'.$room_num." - " .$room_type.'</p></h4>
            <p class="list-group-item-text" id="note' .$i. '" ><p>'.$note.'</p></p>
        </a>
        ';
        $i++;
    }
    $rooms = "";
    getList();
?>

【问题讨论】:

  • 使用 ajax/jquery 仅在 5 秒内刷新此部分

标签: javascript php jquery html refresh


【解决方案1】:

都在同一个'page.php'上

php部分:

<?
if ($_POST["whatever"])
{
echo 'your shizzle here'
exit;
}
?>

Javascript 部分:(使用 jquery)

<script>
setInterval(function()
{
$.post( "page.php", { whatever: 1}, function( data ) {
document.getElementById('someid').innerHTML = data;
});
},5000);
</script>

html部分

<div id = "someid"></div>

另一种方法是使用 iframe :) 但我认为将来不会使用 iframe。

【讨论】:

    【解决方案2】:

    基本上,当您在 javascript 中编写 php 代码时,它总是在页面加载时运行一次。之后你只是将php代码写到浏览器上,根本看不懂(php在服务器上处理,输出是Html、Css和Javascript,浏览器可以解释)

    因此,如果您需要在不重新加载页面的情况下从服务器更新数据,唯一的方法是使用 Ajax 请求,它基本上连接到页面内的服务器并从中获取数据。

    在你的情况下,将你想要执行的 PHP 代码保存在一个文件中,比如php_temp.php

    现在就做

    setInterval(function(){
    $.get("php_temp.php", function(data){
      console.log(data)  // data stores whatever php_temp.php echoes 
    });
    },5000);
    

    关于 Ajax 的更多信息:Ajax Basics

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-22
      • 2021-03-19
      相关资源
      最近更新 更多