我有一个表格,我要求姓名,电话号码,最后用户必须在复选框中选中一个或多个选项,然后点击提交。
之后在“感谢页面”中,我想显示确切的表单,但这次只显示未选中的复选框。 原因是我想说“我们强烈建议您检查所有选项以获得更好的结果,您只需点击下面的提交按钮即可”
然后在下面,我想要像我说的那样呈现表单,但剩下的复选框(之前未检查的oens)将只是上一页中未经检查的选项。有意义吗?
我已经尝试过使用php,如果状态和开关但仍然无法得到我想要的结果,似乎我必须以某种方式定义“虚假陈述”,而不是可以做到这一点。
我应该使用php还是jquery?
任何人都可以帮助我吗?我有点失落。 非常感谢提前
答案 0 :(得分:1)
(编辑:编辑完问题后重新编辑)
好的,我建议的解决方案仍然类似于重写问题之前的解决方案。你有一个复选框列表?我首先将这些复选框的名称放入数组中:
$checkboxes = Array("checkbox1" => 0, "checkbox2" => 0, "checkbox3" => 0);
使用此数组渲染复选框列表以确保一致性(这可以防止您添加不在列表中的复选框,etceteras)。仅渲染值为“0”的那些。
当您提交表单并正在处理$_POST
时,您可以将任何已勾选的复选框设置为“1”。重新渲染复选框(它只会执行值为0的复选框)
<?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>");
?>