Php 提交按钮需要按下两次才能加载页面
我用一个表单创建了一个双语网站,提交表单时保存一个cookie,然后每个页面检查cookie以查看要加载的语言 我遇到的问题是,提交按钮需要按下两次才能加载页面并切换语言 这是我的表格:Php 提交按钮需要按下两次才能加载页面,php,html,wordpress,cookies,Php,Html,Wordpress,Cookies,我用一个表单创建了一个双语网站,提交表单时保存一个cookie,然后每个页面检查cookie以查看要加载的语言 我遇到的问题是,提交按钮需要按下两次才能加载页面并切换语言 这是我的表格: <form action="<?php the_permalink(); ?>" name="region" method="post"> <input type="submit" name="region" value="English" id="en-button" /&
<form action="<?php the_permalink(); ?>" name="region" method="post">
<input type="submit" name="region" value="English" id="en-button" />
<input type="submit" name="region" value="Cymraeg" id="cy-button" />
</form>
这就是我在每个内容区域周围用来加载不同内容的内容:
<?php $language = $_COOKIE["region"];
if ($language == "English") { ?>
<?php echo the_field('english_content'); ?>
<?php } else { ?>
<?php echo the_field('welsh_content'); ?>
<?php } ?>
语言切换正确,但只有在您单击“提交”按钮两次后才能切换。请尝试改用“选择”字段。浏览器可能会因为有两个提交按钮而崩溃。然后,您可以执行类似于
document.getElementById('theSelectMenu').onchange=function(){document.getElementById('theForm').submit();}
的操作,或者更好地使用jQuery进行操作。尝试改用选择字段。浏览器可能会因为有两个提交按钮而崩溃。然后,您可以执行类似于document.getElementById('theSelectMenu').onchange=function(){document.getElementById('theForm').submit();}
的操作,或者更好地使用jQuery进行操作。发现问题是由于Cookie的工作方式引起的,发现了以下(重要)信息:
cookie的工作方式如下:
// Reload the current page so that the cookie is sent with the request
header('Region: '.$_SERVER['REQUEST_URI']);
改为:
// Reload the current page so that the cookie is sent with the request
header('Location: '.$_SERVER['REQUEST_URI']);
事实证明,问题是由于Cookie的工作方式引起的,我们发现了以下(重要)信息: cookie的工作方式如下:
// Reload the current page so that the cookie is sent with the request
header('Region: '.$_SERVER['REQUEST_URI']);
改为:
// Reload the current page so that the cookie is sent with the request
header('Location: '.$_SERVER['REQUEST_URI']);
那么您是说第一次单击
submit
按钮时,表单没有提交?如果是这样,您使用的浏览器是什么,是否在所有浏览器中都会出现这种情况?@deifwod当我单击“提交”按钮时,页面将重新加载,然后当我再次单击该按钮时,页面将重新加载,但这一次语言实际上发生了变化。因此,要更改语言,我需要单击两次。我使用的是Chrome,但它发生在Safari和Firefox中。好吧,那么表单实际上是在提交-在分配$language=$\u cookie['region']
之前,您是否调用设置区域区域cookie
?@deifwod我真的不确定set\u region\u cookie
在我的functions.php文件中,格式在我的header.php文件中。我对Wordpress的设置了解不多,因此在这方面我帮不了你什么忙。很遗憾,请尝试找出调用set\u region\u cookie()
函数的位置和时间点。这听起来像是您试图在设置COOKIE之前分配$language=$\u COOKIE['region']
,这将解释为什么它只在第二次提交表单后才开始工作。您是说,第一次单击一个提交
按钮时,表单未提交?如果是这样,您使用的浏览器是什么,是否在所有浏览器中都会出现这种情况?@deifwod当我单击“提交”按钮时,页面将重新加载,然后当我再次单击该按钮时,页面将重新加载,但这一次语言实际上发生了变化。因此,要更改语言,我需要单击两次。我使用的是Chrome,但它发生在Safari和Firefox中。好吧,那么表单实际上是在提交-在分配$language=$\u cookie['region']
之前,您是否调用设置区域区域cookie
?@deifwod我真的不确定set\u region\u cookie
在我的functions.php文件中,格式在我的header.php文件中。我对Wordpress的设置了解不多,因此在这方面我帮不了你什么忙。很遗憾,请尝试找出调用set\u region\u cookie()
函数的位置和时间点。听起来好像您在设置COOKIE之前试图分配$language=$\u COOKIE['region']
,这就解释了为什么它在第二次提交表单后才开始工作。我真的没有选择将它放在下拉列表中,因为这是它的设计方式。我真的没有选择将它放在下拉列表中,因为这是它的设计方式。一旦它允许我,我将立即奖励赏金!只要赏金允许我,我就给它奖励!