【发布时间】:2023-04-03 21:45:01
【问题描述】:
我的表单中有两个同名的输入(我使用 css 根据屏幕大小显示一个或另一个),但是在表单提交时,只获取最后一个的值,这对我来说是个问题因为如果我display:none 它可以是空的。我想出了一个技巧,包括将不为空的输入值克隆到另一个,这样当我将我的 POST 变量发送到 PHP 时,任何人都可以返回输入的值。
这是我的 HTML 代码:
<form id="form" class="form" name="postuler" method="post" action="receive-post.php" enctype="multipart/form-data" novalidate>
<div class="not-hidden">
<label for="mail">Email address <span class="required">*</span></label>
<input type="email" class="email" placeholder="ex: jdoe@exelcia-it.com" name="email" id="email" maxlength="40" />
</div>
<div class="hidden-fields">
<label for="mail">Email address <span class="required">*</span></label>
<input type="email" class="email" placeholder="ex: jdoe@exelcia-it.com" name="email" id="email" maxlength="40"/>
</div>
<input type="submit" name="upload" id="send" value="Submit" class="postu"/>
</form>
这是我的 jQuery 代码:
$(document).ready(function(){
$('#envoyez').on('click', function () {
if($.trim($('.hidden-fields #email').val())==0){
$('.hidden-fields #email').val()==$.trim($('.not-hidden #email').val())
} else if ($.trim($('.not-hidden #email').val())==0){
$('.not-hidden #email').val()==$.trim($('.hidden-fields #email').val())
}
})
})
这是我的 php 代码:
if(!empty($_POST['email'])){
var_dump($_POST['email']);
} else {
echo "Theres a problem somewhere" ;
}
我遇到的问题是,如果我填写 not-hidden 字段,在 php 端我会得到一个空字符串,因为它总是检索隐藏字段值。
【问题讨论】:
-
不要使用同名的输入字段。 display:none 对发布的值没有影响。
-
你为什么不给输入不同的名字呢?然后在您的 PHP 代码中确定您要使用哪一个。
-
我之所以要这样做是因为php端不仅仅是我放在这里的东西,那只是一个调试草稿,但我曾经给它们起了不同的名字但不能在 php 方面完成工作(我在某些时候遇到错误..)
标签: php jquery html forms post