【问题标题】:How to include a specific php file when a div is shown/display:"block"如何在显示/显示 div 时包含特定的 php 文件:“block”
【发布时间】:2012-03-02 16:04:30
【问题描述】:

我有一个网页,上面有 20 个表格。

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

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

所以我认为因为每个 div 都被隐藏了,所以所有其他隐藏表单的验证都不起作用......我错了:|

有什么办法只在div不隐藏时包含php文件包含?

【问题讨论】:

    标签: php javascript html include show-hide


    【解决方案1】:

    简短的回答:网络不是这样工作的。

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

    有几个解决方案。我建议确保你的每个 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.
    }
    

    希望对您有所帮助。

    【讨论】:

    • 谢谢,一清二楚。认为你给了我一个想法。问题是我在发布表单时已经调用了一个脚本,但为什么不将每个 php 验证包含在发布表单时调用的 .php 脚本中。两全其美嗯...
    • 好的,我需要一些帮助,验证必须在表单发送之前出现,所以把它放在帖子部分不会起作用,因为它说标题一旦发送就不能修改。在我把它作为包含在帖子中之前,我从来没有遇到过这个问题,所以我认为是这样。有什么想法吗?
    • 你能展示一些你的代码吗?一般来说,最好将逻辑(验证)与显示代码分开。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      PHP 不知道在客户端大小上什么是可见的,什么是不可见的。您将不得不考虑不同的方法。

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

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

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

      【讨论】:

        【解决方案4】:

        附加提示:

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

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

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

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

        ....禁用/启用的处理可能比分离表单并像 Cfreak 建议的那样区分服务器站点要付出更多努力...

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-10-25
          • 2013-05-18
          • 1970-01-01
          • 1970-01-01
          • 2022-01-10
          • 1970-01-01
          • 2012-09-11
          相关资源
          最近更新 更多