如何在不重新加载页面的情况下执行javascript

时间:2017-06-30 16:59:18

标签: php jquery wordpress

我有一个脚本可以让用户获得当前时间。然后我将此变量传递给PHP以显示网站上的内容。当我第一次加载页面时,PHP不会显示查询结果,直到重新加载页面。如何在用户首次访问网页时显示该内容?我正在使用wordpress。

<script type="text/javascript">


<script src="jquery-3.2.1.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="http://www.developwww.com/js-cookie-1.5.1/src/js.cookie.js"></script>
<script>
function client_date() {
var d = new Date();
var month = new Array();
month[0] = "January";
month[1] = "February";
month[2] = "March";
month[3] = "April";
month[4] = "May";
month[5] = "June";
month[6] = "July";
month[7] = "August";
month[8] = "September";
month[9] = "October";
month[10] = "November";
month[11] = "December";
var x = month[d.getMonth()];
var y=d.getDate();
var z=d.getFullYear();
var s=x+" "+y+","+z;
    return s ;
}
var day = Math.round((new Date().setHours(23) - new Date(new 
Date().getYear()+1900, 0, 1, 0, 0, 0))/1000/60/60/24);
$.cookie("date", client_date());
$.cookie("day", day);
</script>

这是PHP

 $dayYear=$_COOKIE["day"]; 
$date=$_COOKIE["date"];
echo  $date ."<br> " ;

$query = " select C.book,B.fchapter, B.lchapter, B.fverse ,B.lverse 
FROM readingplan B, biblebooks C WHERE B.id = $dayYear and 
C.id=B.fbook";

然后我让它显示结果。

1 个答案:

答案 0 :(得分:3)

您遇到问题的原因:

你第一次加载页面(还没有存储cookie)所以你的逻辑不起作用,在用户收到页面后,cookie被保存,所以第二个请求会找到这个cookie并让你的逻辑工作

我的建议:

我看到你没有做任何客户端的东西限制为Javascript。我的建议是使用PHP

计算服务器上所需的日期

因此,不需要通过cookie或其他任何东西向服务器发送任何内容。只需准备日期并进行查询,然后发送响应,保证可以根据需要使用第一个请求