2016-10-18 5 views
1

こんにちは私は、次のコードを使用して、その1または0を検出する単純なチェックボックスをチェックボックスが選択されている場合、私が未チェックのボックスのコードを書くとき、私の論理的なタスクは完了していません。コードは次のとおりです。どのようにチェックボックスをオフにしてPHPのdbクエリを送信する

global $wpdb; 

$myrows = $wpdb->get_var("SELECT value FROM wp_geolocationdet"); 
$fchk = $_POST["geolocrun"]; 


if (isset($fchk) && $fchk == "Yes"){ 
    $updatetable = $wpdb->update( 
    'wp_geolocationdet', 
    array( 
     'value' => '1', // string 
    ), 
    array('activate' => 'status'), 
    array( 
     '%s', // value1 
     '%d' // value2 
    ), 
    array('%d') 
); 
} 



if (!isset($fchk)){ 
    $updatetable = $wpdb->update( 
    'wp_geolocationdet', 
    array( 
     'value' => '0', // string 
    ), 
    array('activate' => 'status'), 
    array( 
     '%s', // value1 
     '%d' // value2 
    ), 
    array('%d') 
); 
} 

が、問題はそれが何のチェックボックスが選択されていないことを検出したときに自動的にDBに値を作るである「0」私はそれをオフにか、ちょうどそれが未チェックとしてそれを取るページを更新したにもかかわらず。どのようにこの問題に来る?そのユーザーがボックスのチェックを外したことを本当に検出する方法はありますか?

答えて

0

あなたが追加することができます。

if(isset($_POST["geolocrun"])) 
{ 
// Your code here 
} 

をあなたのコードの開始時かどうかを確認するためにリフレッシュまたは提出ページ!

+0

'$ _POST [" geolocrun "]'これは変数で、これらの 'isset($ _ POST [" geolocrun "])'と 'isset($ fchk)'の違いは何ですか? –

+0

"if(isset($ _ POST [" geolocrun "]))"をチェックすると、データを送信したかどうかをチェックします! "if(isset($ fchk))"は、$ fchkが送信されたかどうかを意味しますが、ページを更新すると送信しません!だからあなたはあなたのデータベースで0を得るでしょう! – Soheyl

+0

チェックされていないオプションは機能しません。これは、チェックボックスが設定されている場合にのみ機能しますが、機能しない場合は機能しません。 –

0

答えを見つけたユーザーがこれを探していると、フォームとコードが同じページにあるので、送信ボタンに名前を入力する必要があります。

<div class="chsub"> <input type="submit" name="chsave" value="Save"></div> 

を呼び出し、それが呼び出されているかどうかを確認します。

if ($_POST['chsave']){ 
//do action 
} 

このようにページをリフレッシュしても値は変化しません。

関連する問題