我正在做一个项目,我到了必须在PHP
中获取 HTML 标签<select>
值的部分。
我的 HTML 代码如下:
<div class="main-content">
<form class="form-register" method="post" action="">
<div class="form-register-with-email">
<div class="form-white-background">
<div class="form-title-row">
<h1>Create an account</h1>
</div>
<div class="form-row">
<label>
<span>Register As</span>
<select name="register_as" id="dropdown">
<option value="none">Select One</option>
<option value="user">User</option>
<option value="designer">Designer</option>
</select>
</label>
</div>
<div class="form-row" id="design1">
<label>
<span>Company Name</span>
<input type="text" name="name">
</label>
</div>
</div>
</div>
</form>
</div>
我使用以下 jQuery 代码影响显示的字段数:
$(document).ready(function() {
$("#design1").hide();
$("#dropdown").change(function() {
if ($("#dropdown").val() == "designer") {
$('.main-content').addClass('design'); // add this line
$("#design1").show();
} else {
$('.main-content').removeClass('design'); // add this line
$("#design1").hide();
});
if ($("#dropdown").val() == "designer") {
$("#design1").show();
}
});
现在我使用此PHP
脚本来获取值:
<?php
if(!empty($_POST)){
$errors = array();
if(isset($_POST['register_as']) AND ($_POST['register_as'] != 'user' OR $_POST['register_as'] != 'designer')){
$errors['register_as'] = "Register as an user or a designer";
}
var_dump($_POST['register_as']);
}
?>
函数var_dump
显示正确的值。我的意思是,当从下拉列表中选择User
时,var_dump
将显示user
。主要问题是我得到错误Register as an user or a designer
我真的不知道发生了什么。
请帮我解决这个问题
你的状况
isset($_POST['register_as']) AND ($_POST['register_as'] != 'user' OR $_POST['register_as'] != 'designer')
检查( $_POST['register_as'] != 'user' or $_POST['register_as'] )
然后,每当您从下拉列表中选择任何一个选项(用户或设计器)时,至少一个条件必须为真,并且 $_POST['register_as'] 将始终为真,因此条件始终为真并返回错误数组
你可以做这样的事情:
if(isset($_POST['register_as']) && $_POST['register_as'] != 'none'){
$errors['register_as'] = "Register as an user or a designer";
}
<?php
if(!empty($_POST)){
$errors = array();
// Should be like this
if(isset($_POST['register_as']) AND ($_POST['register_as'] != 'user' AND $_POST['register_as'] != 'designer')){
$errors['register_as'] = "Register as an user or a designer";
}
// Or like this:
if(isset($_POST['register_as']) AND ($_POST['register_as'] == 'user' OR $_POST['register_as'] == 'designer')){
$errors['register_as'] = "Register as an user or a designer";
}
var_dump($_POST['register_as']);
}
?>