我写的插件页面上的复选框字段不会保持检查状态.正在保存数据,但复选框不反映当前存储的值(已选中).
这是我的功能代码:
public function jo_checkbox_del_setting()
{
echo "<input id='jo_checkbox_del' name='jo_plugin_options[jo_checkbox_del]' type='checkbox' value='{$this->options['jo_checkbox_del']}' />";
}
Run Code Online (Sandbox Code Playgroud)
和add_settings_field代码:
add_settings_field('jo_checkbox_del', 'Hide Delete Button: ', array($this, 'jo_checkbox_del_setting'), __FILE__, 'jo_main_section');
Run Code Online (Sandbox Code Playgroud)

正如您在图片中看到的那样,值为1会被检查,但刷新后复选框永远不会保持检查状态.
我正在使用WordPress,并且在发送之后无法确定如何处理来自Ajax的序列化数据.我在这个网站上看到parse_str了我需要的内容,但我不确定如何使用它.
这是表单提交的jQuery
jQuery( document ).ready( function( $ ) {
$( '#log_data' ).submit( function( event ) {
event.preventDefault();
console.log( $( this ).serialize() );
var data = $(this).serialize();
action = 'my_submit_log_action';
$.post(
ajaxurl,
data,
function ( response ) {
if ( ! response.success ) {
alert( 'Failure!' );
}
alert( 'Success!' );
}
);
});
});
Run Code Online (Sandbox Code Playgroud)
因为这是在WordPress中,我必须传递一个动作,以便WordPress知道将这些数据传递给哪个函数.我不确定我是否正确行动(见上文).
第二部分是PHP,这是我不明白的.如何获取序列化数据并将其发布到数据库?
add_action('wp_ajax_my_submit_log_action', 'my_submit_log_action');
add_action('wp_ajax_nopriv_my_submit_log_action', 'my_submit_log_action');
function my_submit_log_action() {
global $wpdb;
$user_id = $_POST['user_id'];
$length = $_POST['length'];
$ground = $_POST['ground'];
$date = $_POST['date'];
$notes …Run Code Online (Sandbox Code Playgroud) 花了最后两个小时试图让这个$ wpdb-> get_results以相同的方式返回一个数组($ row = mysql_fetch_array($ result)).我已经尝试了所有东西,get_col,get_row等...通过wp codex并尝试了所有他们的例子,几乎没有任何作用.Everything返回Array()或NULL.我在这里失去理智,任何帮助都非常感激.
我最初在PDO中编写了这个插件,然后意识到wordpress不支持这个.我不是wpdb sql的粉丝.这里是;
$query = $wpdb->get_results("SELECT * FROM admin WHERE user_id = '$userid'");
foreach ($query as $row) {
echo $row->date;
}
Run Code Online (Sandbox Code Playgroud)