2016-08-05 2 views
0

ich versuche, eine Bedingung in php für diese Situation zu machen:wie man Bedingung in php mit und/oder

Sie können für einen Radioeingang oder eine Checkboxeingabe wählen. Egal, was Sie wählen, aber wenn Sie eine von ihnen wählen, kann es nicht leer sein.

$quickpolltype = "radio"; // set to "radio" or "checkbox"; radio is one choice, checkbox is multiple choices 

Ich habe die zwei Bedingungen nun wie unten getrennt:

if($quickpolltype == "radio" and $_POST['radiovote'] != '') { 
// do something 
} 
if($quickpolltype == "checkbox" and $_POST['checkboxvote'] != '') { 
// do something 
} 

, was ich erreichen will:

Egal, was Sie als Typ in $quickpolltype wählen, wenn der Wert eines Sie sind nicht leer -> etwas tun

Also, wie kann ich diese 2 Bedingungen in 1 Zustand kombinieren, was auch immer Quickpolltyp gewählt ist?

+0

zu verwenden, wenn der Wert keine Rolle spielt, dann ist es nicht testen? 'if (radiovote! = '' && checkboxvote! = '')' –

Antwort

4

Zunächst ist es ratsam, && zu verwenden und || sehen hier 'AND' vs '&&' as operator

Auch sind Sie eine Zuordnung = tun und keinen Vergleich ==.

So wollen Sie so etwas wie:

if($quickpolltype == "radio" && $_POST['radiovote'] != '') { 
    // do something 
} 
if($quickpolltype == "checkbox" && $_POST['checkboxvote'] != '') { 
    // do something 
} 

Im Wesentlichen wurden Sie $quickpolltype machen "radio" eher dann zu überprüfen, ob es ihm gleich war. Das Gleiche gilt für "checkbox".

Um all das in einem if

if(($quickpolltype == "radio" && $_POST['radiovote'] != '') 
    || ($quickpolltype == "checkbox" && $_POST['checkboxvote'] != '')){ 
    //Do stuff 
} 
+0

Sie haben Recht @nerdlyist. Es sollte ein Vergleich statt einer Zuweisung sein. Aber wie kann ich diese 2 Bedingungen in 1 kombinieren? –

+0

@JackMaessen unter der Annahme, dass die gleiche Sache in jeder der 'If'-Anweisungen passieren sollte, sollten die Änderungen es tun. – nerdlyist

+0

Das ist der, den ich brauche! Danke für die Lösung –

3

zu machen Wenn die „etwas tun“, um die gleiche sein wird, werden Sie sicherlich die beiden Bedingungen kombinieren. Wenn nicht, halte sie getrennt.

if(($quickpolltype=="radio" && $_POST['radiovote'] != '') || ($quickpolltype="checkbox" && $_POST['checkboxvote'] != '')) { 
    //do something 
} 

Stellen Sie sicher, dass Sie beim Vergleichen von Dingen in PHP "==" verwenden! Darüber hinaus möchten Sie möglicherweise careful mit "und" und "oder" anstelle von "& &" und "||" sein in PHP.

0

Radio-Buttons und Checkboxen sind heikel Tiere, denn wenn man nichts wählen dann ihre name="radiovote" wird es nie so in $_POST['radiovote'] verfügbar sein machen Sie die Macht der isset() benötigen. Stellen Sie außerdem sicher, dass die entsprechenden && oder || Betreiber

if(
    in_array($quickpolltype, array("radio","checkbox")) && 
    (
     (isset($_POST['radiovote']) && $_POST['radiovote'] != '') || 
     (isset($_POST['checkboxvote']) && $_POST['checkboxvote'] != '') 
    ) 
) 
{ 
    // Do something 
} 
+0

Dies ist semantisch anders als die Frage gefragt. Es wird etwas tun, wenn '$ quickpolltype ==" radio "' auch wenn '$ _POST ['radiovote'] == ''', solange $ _POST ['checkboxvote']! = '' '. – Julian

Verwandte Themen