gpt4 book ai didi

php - POST 表单显示错误回显

转载 作者:行者123 更新时间:2023-11-28 15:14:51 25 4
gpt4 key购买 nike

我正在尝试显示两个按钮之一,具体取决于数组“ bool 值”中存在的“magnum”(打印机名称)。

我的问题是,发布表单时,页面加载时检索到的数据是正确的,但显示的按钮不正确。如果点击一个按钮,表单发布并刷新页面,“magnum”被推送到 $_SESSION['booleans'] 但按钮仍然显示 “btn btn-default”,因此需要再次刷新页面才能正确加载按钮('btn btn-succes')。

我的问题是由于 $_SESSION 还是我遗漏了什么?

echo'
<form class="form1" method="post" action="" id="form1">
<div class="col-xs-offset-1 col-xs-2">';

if(in_array('magnum', $_SESSION['printers'])){
if(in_array('magnumBool',$_SESSION['booleans'])){
echo '<input type="submit" name="unSubmitMagnum" id="magnumBool" value="magnum" class='.$enabled_printer.'>';
if(isset($_POST['unSubmitMagnum']) && $_POST['unSubmitMagnum']){
$pos = array_search('magnumBool', $_SESSION['booleans']);
unset($_SESSION['booleans'][$pos]);
dump('unset');
}
}
elseif(!in_array('magnumBool',$_SESSION['booleans'])){
echo '<input type="submit" name="submitMagnum" id="magnumBool" value="magnum" class='.$disabled_printer.'>';
if(isset($_POST['submitMagnum'])&& $_POST['submitMagnum']){
array_push($_SESSION['booleans'],'magnumBool');
dump('set');
}
}
}
else{
echo '<button id="magnum" class='.$lost_connection_printer.'>1. Magnum</button>';
}

echo '
</div>
</form>';

$_SESSION['printers'] 是一个包含“magnum”的数组 -
$_SESSION['booleans'] 是无法正常工作的数组 -

$enabled_printer = "btn btn-success" <br>
$disabled_printer = "btn btn-default" <br>
$lost_connection_printer = "btn btn-danger disabled"

最佳答案

问题是您将详细说明和打印混为一谈。尝试拆分您的代码,这样它就可以工作并且更具可读性:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset($_POST['unSubmitMagnum']) && $_POST['unSubmitMagnum']) {
$pos = array_search('magnumBool', $_SESSION['booleans']);
unset($_SESSION['booleans']['magnumBool']);
} elseif (isset($_POST['submitMagnum'])&& $_POST['submitMagnum']) {
$_SESSION['booleans']['magnumBool'] = true;
}
}

echo'<form class="form1" method="post" action="" id="form1">
<div class="col-xs-offset-1 col-xs-2">';

if(in_array('magnum', $_SESSION['printers'])){
if(isset($_SESSION['booleans']['magnumBool'])){
echo '<input type="submit" name="unSubmitMagnum" id="magnumBool" value="magnum" class='.$enabled_printer.'>';
} else {
echo '<input type="submit" name="submitMagnum" id="magnumBool" value="magnum" class='.$disabled_printer.'>';
}
}
else{
echo '<button id="magnum" class='.$lost_connection_printer.'>1. Magnum</button>';
}

echo '</div>
</form>';

附言请注意将“magnumBool”用作键集而不是值:通过这种方式(如果可能)您将避免重复输入,并且如果您有大型数组,将使您的代码更轻松;)

P.p.s.始终尝试将您的登录与您的模板分开,这将使您的代码更具可读性和更易于维护

关于php - POST 表单显示错误回显,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47469337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com