2017-09-16 16 views
0

私は4つのチェックボックスを持っています。そのうちの1つはOthersです。テキストボックスを持っています。ユーザがチェックした値をすべて取得したいのですが、 Othersチェックボックスに関連付けられています。phpのチェックボックスで値を取得する方法

HTMLコード

<div class="row"> 
    <div class="col-sm-4"> 
     <label class="Modallabel">Available Products:</label> 
    </div> 
    <div class="col-sm-8"> 
     <label id="Pro_chkbox" class="checkbox-inline"><input name="check_list[]" type="checkbox" value="Cacao">Cacao</label> 
     <label id="Pro_chkbox" class="checkbox-inline"><input name="check_list[]" type="checkbox" value="Coconuts">Coconuts</label> 
     <label id="Pro_chkbox" class="checkbox-inline"><input name="check_list[]" type="checkbox" value="Bananas">Bananas</label><br> 
     <label id="Pro_chkbox" class="checkbox-inline"><input name="check_list[]" type="checkbox" id="optcheck" value="Others">Others</label> 
     <input type="text" id="Other_pro" name="otherproduct"><br> 
     <label id="Note">(Separate Products with commas)</label> 
    </div> 
</div> 

PHPコード

$checked_count = count($_POST['check_list']); 

    if ($checked_count > 1) 
    { 
     $productlist = implode(', ', $_POST['check_list']); 
     echo $productlist; 
    } 
    elseif ($checked_count == 1) 
    { 
     foreach($_POST['check_list'] as $selected) { 
      $productlist = $selected; 

      //To check if Others checkbox is checked or not to get the values in textbox 
      if ($productlist == "Others") 
      { 
       $productlist = $_POST["otherproduct"]; 
      } 
      echo $productlist; 
     } 
    } 
+0

もしあなたが 'others'をチェックすれば、テキストボックスの値か、チェックとテキストの両方の値が必要ですか? –

+0

サイドノート:IDは一意でなければならず、すべてのチェックボックスは' id = "Pro_chkbox"サポートコードなしで「javascript」とタグ付けされています。何故ですか? –

+0

私はチェックとテキストの値が必要です。例:ユーザーがバナナなどをチェックしてテキストボックスにappleを入力した場合、結果は "bananas、apple" – Bnabil

答えて

1

これはまた、あなたがクライアント側とサーバー側の検証を置くことがあります

$checked_count = count($_POST['check_list']); 
$productlist = ''; //initialize an empty string for product list 
if ($checked_count > 1) //check if multiple check-boxes are checked 
{ 
    $productlist = implode(', ', $_POST['check_list']); //implode all checkbox values in list string 
    if(in_array('Others', $_POST['check_list'])) { //check if others is checked 
     $productlist .= ', '.$_POST['otherproduct']; //con-cat text in text box lined with others in list string 
     $productlist = str_replace('Others,', '', $productlist); //remove others from the list string (skip if you want others to be in your result' 
    } 
} elseif ($checked_count == 1) { 
    $productlist = ($_POST['check_list'][0] == 'Others') ? $_POST['otherproduct'] : $_POST['check_list'][0]; //if only one checkbox is checked then check its value and use the value 
} 
echo "<br/>".$productlist; 

のためのトリックを行います〜へフォームから正しい入力値を取得するようにしてください。

また、Javaスクリプトを使用してフォームをよりインタラクティブにすることもできます。

+0

ありがとう – Bnabil

関連する問題