如何在显示/显示div时包含特定的php文件:“block”

时间:2012-03-02 16:04:30

标签: php javascript html include show-hide

我有一个包含20个表单的网页。

它们都是隐藏的,直到您从下拉框中选择一个表单,然后表单才会出现。

每个表单都有自己的验证。问题是我已经在每个特定表单的自己的div中包含了每个表单的验证。

所以我想因为每个div都被隐藏了,所有其他隐藏形式的验证都无法正常工作......我有多错:|

任何方式只包含php文件包括何时不隐藏div?

4 个答案:

答案 0 :(得分:3)

由于已经处理完所有内容以将所有内容发送到浏览器,因此您只能使用javascript。这样做的方法是将表单的验证绑定到该特定表单的onsubmit,因此事件只会触发正确的表单。

答案 1 :(得分:3)

简短回答:网络无法正常运行。

更长的答案:浏览器不包含PHP,服务器包含它并将HTML中的所有输出吐出到浏览器。浏览器只看到HTML输出,因此它可以看到并发送所有内容。

有几种解决方案。我建议确保每个div都有自己的表单标签,然后为每个div添加一个隐藏的输入,这样你的PHP脚本就可以决定它应该做什么验证。像这样:

<div id="formfoo">
<form method="POST" action="/your-script.php">
<input type="hidden" name="validate" value="formfoo" />
<!-- rest of your form -->
</form>
</div>

然后在PHP中:

if( $_POST['validate'] == 'formfoo' ) {
    // validate fields in formfoo here.
}

希望有所帮助。

答案 2 :(得分:1)

PHP没有关于客户端大小或什么不可见的概念。你必须考虑一种不同的方法。

幸运的是,还有其他方法。

由于每个div都包含一个表单,因此您可以简单地让所有表单都包含一个隐藏字段(比如formid或其他内容),您可以检查该字段以确定提交的表单。

或者,您可以为表单上的每个提交控件指定一个唯一的名称,并检查在服务器端触发的提交按钮的名称。

答案 3 :(得分:1)

额外提示:

您可以将隐藏的div中的表单元素设置为禁用:

<input type="text" name="bla" disabled="disabled" />

并在显示后通过javascript启用它们。

在提交表单时不会发送已禁用的元素。

....处理禁用/启用可能比分离表单和制作像Cfreak建议的区别服务器更加努力......