2016-08-07 10 views
0

Ich habe zwei Auswahl-Eingang, die beiden müssen ausgewählt werden, bevor die #GO-Taste angezeigt wird.Mehrere Auswahl Eingang muss ausgewählt werden

(dbname, benutzer) < --- die zwei wählen eingang, wählen sie welche datenbank und wählen sie einen benutzer für den datenbankzugriff.

Das Problem mit dieser Abfrage besteht darin, dass nach Auswahl eines der beiden die #GO-Schaltfläche angezeigt wird. Die beiden müssen vor dem #GO ausgewählt werden, wenn nicht, dann blendet sich der #GO-Button aus.

die Skriptdatei:

<script type="text/javascript"> 

$(document).ready(function() { 

$("select").on('change',function() { 


    var x = $('select[name=name]').val(); 
    var y = $('select[name=dbname]').val(); 

    if (x == 0 && y == 0) { 
     $("#GO").hide(); 
    } else if (x == 1 && y == 0) { 
     $("#GO").hide(); 
    } else if (y==0 && x==1) { 
     $("#GO").hide(); 
    }else{ 
     $("#GO").show(); 
    } 
}); 

dies die PHP-Datei:

 <?php echo "<select name='name' id='name'>"; 
       $res = $conn->query("SELECT user FROM mysql.user"); 
        echo '<option value="0">Select User</option>'; 
        while($row = $res->fetch_assoc()) { 
         echo '<option value="' . $row['user'] . '">' . $row['user'] . '</option>'; } 
          echo '</select>'; 
       echo "<br/>"; 

     ?> 

     <br> 

     <?php echo "<select name='dbname' id='dbname'>"; 
       $res = $conn->query("show databases"); 
        echo '<option value="0">Select Database</option>'; 
        while($row = $res->fetch_assoc()) { 
         echo '<option value="' . $row['Database'] . '">' . $row['Database'] . '</option>'; } 
          echo '</select>'; 
       echo "<br/>"; 

     ?><br> 


       <input type="submit" name="GO" value="GO" id="GO" class="GO"> 
+0

Was ist das Problem, vor dem Sie stehen? (Oder) Was möchten Sie erreichen? –

+0

Versuchen Sie 'if (x == 0 || y == 0) {' anstelle von 'if (x == 0 && y == 0) {'... ODER anstelle von AND. –

+0

@LouysPatriceBessette Danke, ich habe gerade gemerkt, dass der Betriebszustand, den ich benutzt habe, das AND war. – user5789297

Antwort

0

, was Sie wollen, ist die Verwendung von "||" Das bedeutet "ODER" anstelle von "& &", was "AND" bedeutet.

In diesem Fall, wenn einer von ihnen 0 ist, wird es ausgeblendet.

if (x == 0 || y == 0) { 
    $("#GO").hide(); 
}else{ 
    $("#GO").show(); 
} 

Sie können es auch tun, wie folgt aus:

//It checks whether both x and y are Not 0, if true, shows "#GO", else, stays hidden. 

if (x != 0 && y != 0) { 
    $("#GO").show(); 
}else{ 
    $("#GO").hide(); 
} 
+0

Danke, ich habe gerade gemerkt, dass der Betriebszustand, den ich benutzt habe, das AND war. – user5789297

0

Hier if (x == 0 && y == 0), sagt der Zustand der #GO Taste verbergen, wenn und nur wenn beide nicht ausgewählt. Aber Sie sollten prüfen, ob einer von ihnen ausgewählt ist, und dann die Schaltfläche ausblenden. Also muss die Bedingung if (x == 0 || y == 0) sein, was bedeutet, dass entweder eine von ihnen nicht ausgewählt ist.

Wieder

else if (x == 1 && y == 0) { 
    $("#GO").hide(); 
} else if (y==0 && x==1) { 
    $("#GO").hide(); 

Es gibt keinen Unterschied zwischen diesen beiden oben genannten Bedingungen.

Hier ist, was Sie

$(document).ready(function() { 
    $("select").on('change',function() { 
     var x = $('select[name=name]').val(); 
     var y = $('select[name=dbname]').val(); 

     if (x == 0 ||y == 0) { 
      $("#GO").hide(); 
     }else{ 
      $("#GO").show(); 
     } 
    }); 
}); 

wollen Dies wird genug sein, um zu erreichen, was Sie

+0

Danke, ich habe gerade gemerkt, dass der Betriebszustand, den ich benutzt habe, der AND war. – user5789297

0

Sie können versuchen, auf diese Weise,

$(document).ready(function() { 

    var GO = $('#GO'); 
    var dbname = $('#dbname'); 
    var name = $('#name'); 

    GO.attr('disabled', 'disabled'); //initially disabled 

    function EnableDisableGo() { 

    if (verifySelect()) { 
     GO.attr('disabled', ''); 
    } else { 
     GO.attr('disabled', 'disabled'); 
    } 
    } 

    function verifySelect() { 
    if (dbname.val() != '' && name.val() != '') { //if both selected 
     return true; 
    } else { 
     return false 
    } 
    } 

dbname.change(EnableDisableGo); 

name.change(EnableDisableGo); 


}); 
0

Es gibt einfachere Wege, dies zu tun, tun wollen , mit einem Filter und Toggle

$(document).ready(function() { 
 
    $("select").on('change',function() { 
 
     $('#GO').toggle(
 
      $('#name, #dbname').filter(function() { 
 
       return this.value === $('option',this).first().val(); 
 
      }).length === 0 
 
     ); 
 
    }).trigger('change') 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select name='name' id='name'>"; 
 
    <option value="0">Select User</option> 
 
    <option value="1">1</option> 
 
    <option value="2">2</option> 
 
    <option value="3">3</option> 
 
</select> 
 
<br/><br/> 
 
<select name='dbname' id='dbname'> 
 
    <option value="0">Select Database</option> 
 
    <option value="1">1</option> 
 
    <option value="2">2</option> 
 
    <option value="3">3</option> 
 
</select> 
 
<br/><br/> 
 
<input type="submit" name="GO" value="GO" id="GO" class="GO">

Verwandte Themen