嗨,我正在使用以下代码,并使用一个简单的复选框来检测其是否为1或0,如果复选框被选中,则值变为1并且其成功工作,但当我为未选中的框编写代码时,我的逻辑任务未完成。代码是;
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'中的值,尽管我未选中它,或者只是刷新页面,它将其视为未选中的。如何克服这个问题?是否有一种方法可以真正检测到用户未选中复选框?
您可以添加:
if(isset($_POST["geolocrun"]))
{
// Your code here
}
在代码的开头检查页面是否刷新或提交!
只是玩代码找到了答案,它可能会帮助别人寻找这个,表单和代码是在同一个页面上,所以你需要提供一个名称提交按钮。
<div class="chsub"> <input type="submit" name="chsave" value="Save"></div>
,然后检查是否正在被调用。
if ($_POST['chsave']){
//do action
}
以这种方式在页面刷新时,它不会被调用,所以值是完整的和工作的。