获取 PHP 中 HTML 标记 'select' 的值

Get the value of the HTML tag 'select' in PHP

本文关键字:select 的值 标记 PHP HTML 获取      更新时间:2023-09-26

我正在做一个项目,我到了必须在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']);
	}
?>