2016-04-28 6 views
1

Ich arbeite an einem Projekt und ich kam zu einem Teil, wo ich den Wert des HTML-Tags <select> in PHP bekommen muss.Holen Sie sich den Wert des HTML-Tags 'select' in PHP

Mein HTML-Code ist der folgende:

<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>

ich Einfluss auf die Anzahl der Felder mit dem folgenden jQuery-Code angezeigt:

$(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(); 
 

 
     } 
 

 
    });

Nun verwende ich dieses PHP Skript den Wert zu erhalten:

<?php 
 

 
\t if(!empty($_POST)){ 
 
\t \t 
 
\t \t $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']); 
 

 
\t } 
 

 
?>

Die Funktion var_dump zeigt den richtigen Wert. Ich meine, wenn User aus dem Dropdown ausgewählt ist, zeigt var_dumpuser. Das Hauptproblem ist, dass ich den Fehler bekomme Register as an user or a designer

Ich weiß nicht wirklich, was vor sich geht.

Bitte helfen Sie mir, dieses Problem zu lösen

+1

Verwendung und anstelle oder. Wenn '$ _POST ['register_as']' 'user' ist, dann ist es nicht 'designer' und umgekehrt (die zweite Bedingung Ihrer if-Anweisung gibt immer true zurück) – billyonecan

Antwort

2

Ihr Zustand

isset($_POST['register_as']) AND ($_POST['register_as'] != 'user' OR $_POST['register_as'] != 'designer') 

für ($_POST['register_as'] != 'user' or $_POST['register_as']) prüft dann, wenn Sie eine beliebige Option auswählen (Benutzer oder Designer) aus dem Drop-Down dann at-mindestens eine Bedingung erfüllt sein müssen und die $ _POST [ ‚register_as‘] wird immer wahr, so dass die Bedingung immer wahr und gibt Fehler Sie Array

0

Sie etwas tun können:

if(isset($_POST['register_as']) && $_POST['register_as'] != 'none'){ 
    $errors['register_as'] = "Register as an user or a designer"; 
} 
+0

Falls der Benutzer den HTML-Quellcode ändert und den Wert einer der Dropdown-Option zu "Adrian" zum Beispiel, Sie Code funktioniert noch. Ich hoffe, Sie bekommen den Punkt, den ich versuche zu machen – Prince

+0

nicht viel tut mir leid .... Was versuchen Sie mit PHP zu erreichen? Warum erstellen Sie ein Array für Fehler? – adrian

0

<?php 
 

 
\t if(!empty($_POST)){ 
 
\t \t 
 
\t \t $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']); 
 

 
\t } 
 

 
?>

Verwandte Themen