2012-01-19 6 views
2

私はFlipスイッチ、ドロップダウン、チェックボックス、スライダ要素を持ついくつかのアイテムの単純なインセットリスト(jQuery Mobile)を持っています。PHP/HTMLフォームでのユーザの入力に基づいて、MySQL Select節に特定の列要素を含めるにはどうすればよいですか?

このInset ListをHTMLフォームの中にラップしました。

<div data-role="fieldcontain"> 
     <ul data-role="listview" data-inset="true"> 
     <li data-role="list-divider"> Inhouse capabilities </li> 
     <li> <label for="flip-b">Project Manager</label> 
      <select name="slider" id="flip-b" data-role="slider"> 
       <option value="no">No</option> 
       <option value="yes">Yes</option> 
      </select> 
     </li> 
     <li> <label for="flip-b">Site Supervisor</label> 
      <select name="slider" id="flip-b" data-role="slider"> 
       <option value="no">No</option> 
       <option value="yes">Yes</option> 
      </select> 
     </li> 
     <li><label for="flip-b">Architect</label> 
      <select name="slider" id="flip-b" data-role="slider"> 
       <option value="no">No</option> 
       <option value="yes">Yes</option> 
      </select> 
      </li> 
     <li><label for="flip-b">Builderworks</label> 
      <select name="slider" id="flip-b" data-role="slider"> 
       <option value="no">No</option> 
       <option value="yes">Yes</option> 
      </select> 
      </li> 
      <li><label for="flip-b">Electrical</label> 
      <select name="slider" id="flip-b" data-role="slider"> 
       <option value="no">No</option> 
       <option value="yes">Yes</option> 
      </select> 
      </li> 
      <li><label for="flip-b">Mechanical</label> 
      <select name="slider" id="flip-b" data-role="slider"> 
       <option value="no">No</option> 
       <option value="yes">Yes</option> 
      </select> 
      </li> 
      <li><label for="flip-b">Hydraulics</label> 
      <select name="slider" id="flip-b" data-role="slider"> 
       <option value="no">No</option> 
       <option value="yes">Yes</option> 
      </select> 
      </li> 
      <li><label for="flip-b">Joinery</label> 
      <select name="slider" id="flip-b" data-role="slider"> 
       <option value="no">No</option> 
       <option value="yes">Yes</option> 
      </select> 
      </li> 
      <li> 
       <label for="select-choice-1" class="select">Main Location:</label> 
        <select name="select-choice-1" id="select-choice-1"> 
         <option value="NSW">NSW</option> 
         <option value="ACT">ACT</option> 
         <option value="VIC">VIC</option> 
         <option value="SA">SA</option> 
         <option value="QLD">QLD</option> 
         <option value="NT">NT</option> 
         <option value="WA">WA</option> 
         <option value="TAS">TAS</option> 
        </select>      
      </li> <!-- Select Menus: Main Location--> 

      <li>  
       <div data-role="fieldcontain"> 
       <fieldset data-role="controlgroup"> 
        <legend>CBA Reference</legend> 
        <input type="checkbox" name="checkbox-1a" id="checkbox-1a" class="custom" /> 
        <label for="checkbox-1a">Commercial</label> 
        <input type="checkbox" name="checkbox-2a" id="checkbox-2a" class="custom" /> 
        <label for="checkbox-2a">Retail</label> 
       </fieldset> 
       </div> 
      </li>       
</ul>    
    </div> <!-- End of Field Contain div tag --> 
<a href="#additionalinfo" data-role="button" data-inline="true" data-iconpos="left" data-theme="b">Additional Info</a> 
<a href="./search2.html" rel="external" data-ajax="false" data-role="button" data-inline="true" data-icon="search" data-iconpos="left" data-theme="e">Search</a> 

`

私は要素だけ私のSQLクエリで選択したユーザを含めることができるか、知りたいです。

QLDで電気工事を見つけようとすると、電気とQLDのためにはいを選択し、それ以外の項目はタッチしません。

ここで、これらの2つの値だけをselect句に含める方法を示します。

「Main location = 'QLD'」という表からElectrical、Main Locationを選択します。

POSTメソッドを使用してユーザーの入力を収集しました。このプロジェクトにはPHP、MySQLを使用します。

これを達成するためのアイデアはありますか?

答えて

2

私はフィールドを読まなかったので、あなたは適応する必要がありますが、それはMySQLの質問よりPHPの質問のほうが多いです。あなたは基準のリストを作成し、それらを一緒に爆破する必要があります。

$criterias = array(); 

if(isset($_POST['option1']) && $_POST['option1'] == 'yes'){ 
    $criterias[] = '(mytable.myfield1 = 1)'; 
} 

if(isset($_POST['option2']) && $_POST['option2'] == 'yes'){ 
    $criterias[] = '(mytable.myfield2 = 1)'; 
} 

$sql = 'SELECT * FROM mytable'.(count($criterias) > 0 ? ' WHERE '.implode(' OR ', $criterias) : '').' ORDER BY mytable.sortkey'; 

これは、任意の種類の条件一覧を作成するのに役立ちます。これらの基準が包括的であるように見えるので、私はimplodeでORを使用したので、ユーザーの選択に基づいてそのタイプに基づいて作業者を表示します。しかし、私は確かにあなたが望むものがあれば確信しています。 、あなたが特定の場所に、あるいは異なるに関係する多くの種類を

if(isset($_POST['option2']) && $_POST['option2'] == 'yes'){ 
    $criterias[] = '(mytable.myfield2 = 1 AND mytable.location = "'.$_POST['location'].'") 
} 

その方法を持つことができます:あなたはセットアップあなたのcriteriasがはるかに複雑になり、そのように2つの情報を組み合わせることができることを

も注意あなたが望むならば、一度に場所。

幸運

+0

ありがとうマチュー。それは超高速応答でした。感謝。私はチェックする必要がある約50の変数を持っている(はい/いいえフリップスイッチ、チェックボックス、ドロップダウンとスライダ)。私は今それにジャンプします。再度、感謝します。あなたにもっと更新します。 – user1076517

+0

こんにちはマチュー。構文エラーがあるので、このコード行を説明できますか? $ criterias [] = '(mytable.myfield1 = 1)。ありがとう。 – user1076517

+0

マチューは、その行(とセミコロン ';')の終了引用符を逃した "$ criterias [] = '(mytable.myfield1 = 1) – TJMonk15

関連する問題