所以我有一个窗体,用户可以看到6个字段中的2个。用户然后可以点击一个按钮来显示其他字段。如何使用PHP检测元素是否可见?
每个字段使用以下PHP验证(注:的preg_match是有,以确保他们已经进入了一个空间,因为它是一个全名称字段):
$multipleFormErrors = array();
if (!isset($firstGuestName) || empty($firstGuestName) || !preg_match("/ /",
$firstGuestName)) {
$multipleFormErrors["firstGuestName"] = "You have not entered your full name.";
}
if (!isset($secondGuestName) || empty($secondGuestName) || !preg_match("/ /",
$secondGuestName)) {
$multipleFormErrors["secondGuestName"] = "You have not entered guest #2's full
name.";
}
if (!isset($thirdGuestName) || empty($thirdGuestName) || !preg_match("/ /",
$thirdGuestName)) {
$multipleFormErrors["thirdGuestName"] = "You have not entered guest #3's full name.";
}
依此类推,直到客人# 6。
然后将结果被回显到使用用户:
if (isset($_POST["multipleSubmit"])) {
if ($multipleFormErrors) {
echo "<div class=\"errors\">";
echo "Please fix the following errors:";
echo "<ul>";
foreach ($multipleFormErrors as $error) {
echo "<li>";
echo $error;
echo "</li>";
}
echo "</ul>";
echo "</div>";
}
}
的这里的问题是,所有的错误显示,即使旅客3 - 6是对用户不可见的。因此,如果他们提交的表格只有最初的2位嘉宾填写完毕,他们会得到一个错误,因为嘉宾3 - 6的值为空字符串。我想一个解决这个问题的方法是让PHP检测显示值是否设置为像在JS中那样可以阻止,所以这是可能的还是我需要做一些不同的事情?
干杯!
你的PHP没有“可见”的概念。该页面位于用户的浏览器中,与您的PHP生成的HTML无关。 –