在提交上一个表单后,如何在选择表单中显示未选择的选项

时间:2010-11-12 10:51:55

标签: php jquery

我有一个表格,我要求姓名,电话号码,最后用户必须在复选框中选中一个或多个选项,然后点击提交。

之后在“感谢页面”中,我想显示确切的表单,但这次只显示未选中的复选框。 原因是我想说“我们强烈建议您检查所有选项以获得更好的结果,您只需点击下面的提交按钮即可”

然后在下面,我想要像我说的那样呈现表单,但剩下的复选框(之前未检查的oens)将只是上一页中未经检查的选项。有意义吗?

我已经尝试过使用php,如果状态和开关但仍然无法得到我想要的结果,似乎我必须以某种方式定义“虚假陈述”,而不是可以做到这一点。

我应该使用php还是jquery?

任何人都可以帮助我吗?我有点失落。 非常感谢提前

1 个答案:

答案 0 :(得分:1)

(编辑:编辑完问题后重新编辑)

好的,我建议的解决方案仍然类似于重写问题之前的解决方案。你有一个复选框列表?我首先将这些复选框的名称放入数组中:

$checkboxes = Array("checkbox1" => 0, "checkbox2" => 0, "checkbox3" => 0);

使用此数组渲染复选框列表以确保一致性(这可以防止您添加不在列表中的复选框,etceteras)。仅渲染值为“0”的那些。

当您提交表单并正在处理$_POST时,您可以将任何已勾选的复选框设置为“1”。重新渲染复选框(它只会执行值为0的复选框)

编辑:抱歉,花了这么长时间,我有点忙,我的php有点生疏。我向每个阅读此内容的PHP程序员道歉,它很快而且很脏!!“

<?php
function renderCheckboxes($checkBoxes)
{
    foreach($checkBoxes as $field => $value)
    {
        if($value == 0)
            echo("<input type=\"checkbox\" name=\"$field\" />".
                 "<label for\"=$value\">$field</label><br/>");
    }
}

// initialise possibibilites
$array = Array("Name" => 0, 
               "Tel" => 0, 
               "Address1" => 0, 
               "Address2" => 0, 
               "Town" => 0, 
               "Postcode" => 0, 
               "Country" => 0);

// process form here
$posting = count($_POST) > 0;
if($posting) // submitting?
{
    foreach($_POST as $field => $value)
        $array[$field] = 1;
}
echo("<html>".
        "<body>".
            "<form name=\"frmTest\" id=\"frmTest\" method=\"post\" action=\"test.php\">");
if($posting)
    echo("We highly recommend you select the following:<br/>");
renderCheckboxes($array);
echo("<input type=\"submit\" value=\"Submit\" />".
            "</form>".
        "</body>".
      "</html>");

?>