【问题标题】:Submit only filled fields in form php仅提交表单 php 中已填写的字段
【发布时间】:2014-01-16 14:45:05
【问题描述】:

我有一个基本表单,里面有很多输入文本框要填写:

<form action="page2.php" method="get">
<input type="text" name="a">
<input type="text" name="b">
...
<<input type="text" name="z">>
</form>

我想传递给 page2.php 只填充输入字段并忽略其余部分。 看起来很简单,但我想不通...

谢谢!

【问题讨论】:

    标签: php forms form-submit


    【解决方案1】:

    在page2.php中过滤掉空字段要容易得多:

    $_GET = array_filter($_GET);
    

    这将删除所有空的 $_GET 数组条目。

    如果您必须在提交到 page2 之前执行此操作,则需要使用客户端 javascript 循环遍历所有表单字段并删除空的字段。不理想。

    【讨论】:

    • @Continental 从系统设计的角度来看,这也是更好的方法。 IE。显示表单的脚本不应该对 page2(或 page5,或 pageBanana)将如何处理它发送过来的数据做出任何假设。
    • 我的第一个解决方案是分析 page2 中的空变量,但我的链接看起来像这样:“page2.php?a=&b=&.....z=" 这很难看。每次将数百个空变量发送到第 2 页是否有意义?我真的不知道java。你能告诉我那个代码吗?谢谢
    • @chitoiudaniel 是的,它确实有意义。 HTML 表单应该发送任何定义的字段。如果您不喜欢丑陋的 URL,请使用 method="post" 而不是 GET。
    • 我可以使用“post”。谢谢!
    【解决方案2】:

    在page2.php中

    使用

    foreach($_GET as $key => $value){
    // This will extract those fields which dint have value.
    }
    

    或者,您可以使用 jQuery / Javascript 来迭代输入类型文本并仅发送其中包含值的那些字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-06
      • 2011-06-08
      相关资源
      最近更新 更多