2017-04-12 186 views
-1

我有这个variable.php其中包含一个变量:刷新变量

<?php 
// Start the session 
session_start(); 
?> 
<html> 

<head> 

<link rel="stylesheet" href="style.css"/> 

<body> 

<div> 

<?php 


$output = shell_exec("sh r.sh"); 

$op = preg_split("#[\r\n]+#",trim($output)); 

$rest = substr("$op[0]",-5); 

$value= hexdec($rest); 

$value=$value/1000; 

?> 
<?php 
$_SESSION["value1"] = "$value"; 
?> 

</div> 

</body> 

</head> 

</html> 

和我有这个index.php页面,其显示我的变量值:

<?php 
session_start(); 
?> 
<html> 

<head> 

<link rel="stylesheet" href="style.css"/> 

<body> 
<?php print $_SESSION["value1"] ; ?>       

</body> 

</head> 

</html> 

我怎样才能使用Jquery从variable.php中刷新变量$ value并在index.php中每1秒刷新一次?

我尝试这样做:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<script> 
 

 
setTimeout("location.reload(true)",1000); 
 

 
</script>

但它只是刷新的index.php,但不是variable.php

感谢。

+0

你好,欢迎来到Stackoverflow。我们在这里帮助您解决特定的编程问题,而不是为您编写代码。告诉我们你试过的东西,与我们分享你的想法,我们会提供帮助,但没有人会为你写代码。首先,你的变量.php中不需要所有'html'标签,你不会显示任何内容。 – Twinfriends

+0

我试图这样: 但它刷新index.php每1秒,但不是变量。 – Zekeriya

回答

0

只是让你variable.php做到这一点:

<?php 
    // Start the session 
    session_start(); 

    $output = shell_exec("sh r.sh"); 
    $op = preg_split("#[\r\n]+#",trim($output)); 
    $rest = substr("$op[0]",-5); 
    $value= hexdec($rest); 
    $value=$value/1000; 

    $_SESSION["value1"] = $value; 

在你index.php做到这一点:

<?php 
    require_once('variable.php'); 
?> 
<html> 
<head> 
</head> 
<body> 
    <?php echo $_SESSION["value1"]; ?> 
    <script> 
     setTimeout(function(){ 
      window.location.reload(1); 
     }, 1000); 
    </script> 
</body> 
</html> 

这将在variable.php每次运行代码index.php被加载。 JavaScript使页面每秒重新加载一次。

通过对更新变量并返回变量的PHP页面进行AJAX调用,也可以使其更加优雅。如果你想使用AJAX和jQuery阅读这篇文章:https://api.jquery.com/jquery.get/

+0

它工作得很好,但事实是我只是想要更新变量。我会把一些图像在PHP中,所以每秒都会刷新图像,这就是我不想... – Zekeriya

+0

@Zekeriya然后,你将不得不看看我的答案的AJAX/jQuery部分:-)。良好的阅读。 – Jogge

+0

我已经阅读过这篇文章,但我不明白它对我有什么好处? – Zekeriya

0

也许你可以使用Ajax的工作,在这里我把一个例子:

这是你的index.html

<!DOCTYPE html> 
    <html> 
    <head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 
    </head> 
    <body> 
    <p id="demo"></p> 

    <script type="text/javascript"> 

    function myFunction() { 
     $.ajax({ url: 'test.php', 
      data: {action: 'test'}, 
      type: 'post', 
      success: function(output) { 
       document.getElementById("demo").innerHTML = output; 
       setInterval(myFunction(), 500); 
         } 
      }); 


    } 
    setInterval(myFunction(), 500); 

    </script> 
    </body> 
    </html> 

,为此例如,你可以使用一个PHP这样 test.php的

<?php echo date("Y-m-d H:i:s"); ?> 

你可以改变其他文本test.php的结果,但如果你把此行中我瘦k它会更清楚你