javascript - 如何在 wordpress 中使输入值永久化或使用全局变量
问题描述
我目前使用 Java 脚本片段制作我的第一个 Wordpress 网站,以进行倒计时,该倒计时会不断刷新并允许我每 6 小时单击一次按钮。所以我设法让时间自行刷新,但我需要一个永久变量来告诉我是否已经点击了按钮(因为无论我刷新页面、转到另一边甚至与另一个用户登录,它都应该有效)。基本上我只想要一个在 0 和 1 之间变化的变量。我实现了一个隐藏的输入字段,只要我留在一边(刷新一边也可以),它就可以正常工作,但是一旦我更改了它设置的页面变回。我试图在我的主题的 function.php 中实现一个全局变量(以及一个函数),但它仍然不起作用。
我试过这样:
global $x;
echo $x;
和这个:
function displayX() {
global $x;
$x = "0";
echo $x;
}
问题是我不想设置一个值,因为该变量需要随时更改。
那是我当前的html:
<input type="text" id="id1" value="<?php echo $x; ?>" <="" input="">
但它只是行不通。
我的第二种方法是使输入字段永久化(但可更新) - 只要我不改变侧面,这种方法同样有效。我试过这样:
<span id="00">
<input type="text" id="id1">
</span>
有人可以帮我吗?另外请指定我必须在哪里设置全局变量,因为有这么多的 function.php 文件。
谢谢你!
解决方案
最简单的方法是使用update_option
and get_option
。
update_option
用于将数据保存到永久的数据库中。
get_option
用于从数据库中获取数据。
<form method="post">
<input type="text" name="permanent" id="permanent" value="<?php echo get_option('permanent_data'); ?>"/>
<input type="submit" name="save" value="submit"/>
</form>
您可以使用如下操作在后端捕获表单数据:在functions.php中
add_action('init','save_permanent');
function save_permanent(){
if(isset($_POST['save'])){
update_option('permanent_data', $_POST['permanent']);
}
}
下面的代码检查是否提交了表单:
if(isset($_POST['save'])){
update_option('permanent_data', $_POST['permanent']);
}
如果表单提交,它会获取输入文本的值,命名为permanent
提及的代码永久数据库中的数据作为名称permanent_data
如果您想获取存储的数据,您只需get_option(option name)
像这样调用:
<?php echo get_option('permanent_data'); ?>
对于第一个问题,您可以这样做:在functions.php中
<?php
if(if(isset($_POST['save']))){
update_option('already_clicked', '1');
}
对于获取存储的数据,您可以使用:
<?php
if(get_option('already_clicked') == '1'){
//do somthing
}
?>
推荐阅读
- r - 使用 R 进行轮询预测
- c# - ASP .Net Core Routing - 无法确定为什么带有参数的 GET 无法路由到
- git - 提交仓库中文件夹的 ID
- angular - 图像未显示在我的角度应用程序中
- python - 一行上的 Python 变量赋值
- c - 在 LED 矩阵和按钮中控制开和关
- nosql - AWS Dynamodb 和可用区底层架构
- android - 在数据绑定中遇到一些问题(错误:表达式的非法开始?resourceData = null;)
- java - 调用所需传播的事务函数两次仅导致 1 个事务(但从另一个类调用时为 2 个事务)
- programming-languages - 关于创建自己的小语言的问题