2016-05-03 15 views
0

HTMLコードに "province"、 "district"、 "market"などの要素が3つあります(SELECT)。私は、フォーム要素が選択されたかどうかの組み合わせを検出するためのサンプルアルゴリズムが必要です。 if条件の6つの組み合わせについて考えています。PHPでマルチセレクションの組み合わせを決定するには

fillされたSELECT要素の組み合わせをif条件の最小数でどのように決定できますか?

私のコード今のところ、私が達成しようとしているものを、説明しなければならない:返信用

<select name="a"> 
    <option value="acity">a city</option> 
</select> 
<select name="b"> 
    <option value="bdistrict">b district</option> 
</select> 
<select name="c"> 
    <option value="cmarket">c market</option> 
</select> 
<?php 
if($_POST["a"] != null and $_POST["b"] != null and $_POST["c"] != null) 
    echo "aaaa"; 
elseif($_POST["a"] != null and $_POST["b"] != null) 
    echo "bbb"; 
/*elseif ...*/ 
?> 

感謝を。

+0

どこにあなたの実際のコードはありますか? – Random

+0

もっと具体的にしてください。可能であれば共有codr –

答えて

0

回答を配列に格納できます。以下のコードは、2つの決定を行います:最初のものからいくつの連続したオプションが選択され、どの組み合わせも含めません。値を格納する代わりに、関数を格納することさえできます。

$combination = [ 'abc' => function() {return 'foo bar';} /* , ... */ ]; 
$combination['abc']();` 

 

<!DOCTYPE html> 
<html> 
    <body> 
    <form method="post"> 
     <select name="a"> 
     <option></option> 
     <option value="acity">a city</option> 
     </select> 
     <select name="b"> 
     <option></option> 
     <option value="bdistrict">b district</option> 
     </select> 
     <select name="c"> 
     <option></option> 
     <option value="cmarket">c market</option> 
     </select> 
     <button type="submit">submit</button> 
    </form> 
<?php 
$post_keys = [ 
    'a' => 'aaa', 
    'b' => 'bbb', 
    'c' => 'ccc' 
]; 

$value = '[no valid selection]'; 

foreach($post_keys as $key => $val) 
    if(isset($_POST[$key]) && '' !== $_POST[$key]) 
    $value = $val; 
    else 
    break; 
?> 
    <div>Form has been filled until: <?php echo $value;?>.</div> 
<? 
$combination = [ 
    '' => 'nothing', 
    'a' => 'only a', 
    'ab' => 'c missing', 
    'abc' => 'all', 
    'ac' => 'b missing', 
    'b' => 'only b', 
    'bc' => 'a missing', 
    'c' => 'only c' 
]; 

$key_seq = ''; 
foreach($post_keys as $key => $val) 
    if(isset($_POST[$key]) && '' !== $_POST[$key]) 
    $key_seq .= $key; 

$value = $combination[$key_seq]; 
?> 
    <div>Combination of a,b,c: <?php echo $value;?>.</div> 
    </body> 
</html> 
+0

返信ありがとうございます。これは良い考えです.. – servetcolakoglu