2017-09-22 12 views
-1

私はページロード時に表示されるphpとmysqlのコントロールパネルを持っています。そのページにチェックボックスがあります(既定ではなく、データベースに保存されていないか、古いアイテムを表示するオプション以外のものに関連付けられています)。クリックすると、新しいフィルタが適用されたデータが更新されます。基本的には、アクティブなアイテムのみを表示するロード時に、チェックボックスをチェックすると、古いアイテムのページをリロードするようにします。チェックボックスのチェックでmysqlクエリをリフレッシュ

私のコードは次のとおりです。

<form action="" method="POST"> 
    <input type="checkbox" name="filter" value="true"> 
    </form> 
    <?PHP 

    $showold = (isset($_REQUEST['filter'])); 
    if ($showold === 'checked') 
    { 
     $showold = "WHERE `MyTable` = '0'"; 
    } 
    else 
    { 
     $showold = "WHERE `MyTable` = '1'"; 
    } 
      $query_NowPouring = "SELECT * FROM MyTable $showold"; 
      $result = mysqli_query($mysqli, $query_NowPouring); 

    if($result){ 
     while($row = mysqli_fetch_array($result)){ 
     #set variables here and display the info in table here. 
      } 
     } 

    ?> 
+0

実際に何も変更していないので、代わりに 'GET'メソッドを使うほうが良いでしょう。 –

+0

' if($ showold === 'checked') 'という行が'あなたは期待した。 isset()の戻り値は変数が存在するかどうかを示すboolです。これを文字列と比較することはできません。 –

+0

ベンジャミン、私はちょうど概念の証明のためにそこに投げたようにあなたのprobの権利。 – madscientest

答えて

0

あなたのコード(ISSET($ _ REQUEST [ 'フィルタ']));文字列ではなく0または1のようなブール値を返すので、if($ showold === 'checked')で文字列とマッチングします。

問題ブール値と文字列を比較できないという問題があります。

+0

私は、フィルタが何をしているかの例として、そこに置いています。 – madscientest

+0

フィルタが機能しません。最初にisset関数を使用してフィルタパラメータをチェックします。その後、再びパラメータのフィルタ値を取得し、if条件でその値を比較します –

関連する問題