Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 带有in_数组的WordPress检查函数_Php_Wordpress_Checkbox_Checked_Meta Boxes - Fatal编程技术网

Php 带有in_数组的WordPress检查函数

Php 带有in_数组的WordPress检查函数,php,wordpress,checkbox,checked,meta-boxes,Php,Wordpress,Checkbox,Checked,Meta Boxes,Wordpress插件。 我需要检查复选框的checked=“checked”。我将它们存储在一个数组中 我遇到的问题是,如果复选框被存储,它们不会“选中”复选框 public function display() { $html = ''; // Add an nonce field so we can check for it later. wp_nonce_field( basename( __FILE__ ), 'nonce_check_value' );

Wordpress插件。
我需要检查复选框的
checked=“checked”
。我将它们存储在一个数组中

我遇到的问题是,如果复选框被存储,它们不会“选中”复选框

 public function display() {

    $html = '';
    // Add an nonce field so we can check for it later.
    wp_nonce_field( basename( __FILE__ ), 'nonce_check_value' );
    $html .= '<label for="CMBUserBoxName">Name metabox: </label>';
    $html .= '<input type="text" name="CMBUserBoxName" value="' . get_post_meta( get_the_ID(), 'CMBUserBoxName', true ). '">';
    $data = get_post_meta(get_the_ID(), 'CMBUserRequestedOption');
        echo '<pre>';
        print_r($data);
        echo '</pre>';

    $html .= 'Radio: ';
    $html .= '<input type="checkbox" name="CMBUserRequestedOption[Radio]" value="1" '.checked( in_array( 1, $data ), 1, false ).' />';



    $html .= '</br>';

    $html .= 'Checkbox: ';
    $html .= '<input type="checkbox" name="CMBUserRequestedOption[Checkbox]" value="1" '.checked( in_array( 1, $data ), 1, false ).' />';


    echo $html;
}
保存功能:

$data = Array(
    'a:2:{s:5:"Radio";s:1:"1";s:8:"Checkbox";s:1:"1";}'
);
$data[0] = unserialize($data[0]);
我认为
checked()
缺少一些内容。

选中(在数组中(1,$data),1,false)
您的
$data
包含一个字符串(在索引
0
)。如果要检查它包含的数据,必须取消序列化

$html .= '<input type="checkbox" name="CMBUserRequestedOption[Radio]" value="1" '.checked($data[0]['Radio'], 1, false).' />';
$html .= '<input type="checkbox" name="CMBUserRequestedOption[Checkbox]" value="1" '.checked($data[0]['Checkbox'], 1, false).' />';
然后您可以使用
checked($data[0]['Radio'],1,false)

$html.='';
$html.='';
或者,正如@Nawin所指出的,您可以获取值中的数据,而不是数组中的数据:

$data=get_post_meta(get_ID(),'CMBUserRequestedOption',true);
$data=取消序列化($data);
//已检查回波($data['Radio',1,false);
//已选中回显($data['Checkbox',1,false);
$html.='';
$html.='';

另请参见。

您的
$data
包含一个字符串(在索引
0
)。如果要检查它包含的数据,必须取消序列化

$html .= '<input type="checkbox" name="CMBUserRequestedOption[Radio]" value="1" '.checked($data[0]['Radio'], 1, false).' />';
$html .= '<input type="checkbox" name="CMBUserRequestedOption[Checkbox]" value="1" '.checked($data[0]['Checkbox'], 1, false).' />';
然后您可以使用
checked($data[0]['Radio'],1,false)

$html.='';
$html.='';
或者,正如@Nawin所指出的,您可以获取值中的数据,而不是数组中的数据:

$data=get_post_meta(get_ID(),'CMBUserRequestedOption',true);
$data=取消序列化($data);
//已检查回波($data['Radio',1,false);
//已选中回显($data['Checkbox',1,false);
$html.='';
$html.='';

另请参见。

您的
打印内容($data)数据?请参阅更新的it阵列
a:2:{s:5:“收音机”;s:1:“1”;s:8:“复选框”;s:1:“1”}
?是的。那么我遗漏了什么?不,那不是一个数组。。。试着像这样更改你的get post meta
get\u post\u meta(get\u ID(),'CMBUserRequestedOption',true)
什么是你的
print\r($data)数据?请参阅更新的it阵列
a:2:{s:5:“收音机”;s:1:“1”;s:8:“复选框”;s:1:“1”}
?是的。那么我遗漏了什么?不,那不是一个数组。。。尝试像这样更改get post meta
get\u post\u meta(get\u ID(),'CMBUserRequestedOption',true)
感谢您的解释。如果我不检查任何内容并保存数据库中的值,则不会更新。所以出于某种原因,它总是需要选中一个选项?@Interactive我真的很抱歉,但我不知道Wordpress是如何工作的,也不知道它如何在数据库中保存发布的值。好的。也许还有一个问题。帮了我很多。竖起大拇指!谢谢你的解释。如果我不检查任何内容并保存数据库中的值,则不会更新。所以出于某种原因,它总是需要选中一个选项?@Interactive我真的很抱歉,但我不知道Wordpress是如何工作的,也不知道它如何在数据库中保存发布的值。好的。也许还有一个问题。帮了我很多。竖起大拇指!
$html .= '<input type="checkbox" name="CMBUserRequestedOption[Radio]" value="1" '.checked($data[0]['Radio'], 1, false).' />';
$html .= '<input type="checkbox" name="CMBUserRequestedOption[Checkbox]" value="1" '.checked($data[0]['Checkbox'], 1, false).' />';
$data  = get_post_meta(get_the_ID(), 'CMBUserRequestedOption', true);
$data = unserialize($data);
// echo checked($data['Radio'], 1, false);
// echo checked($data['Checkbox'], 1, false);

$html .= '<input type="checkbox" name="CMBUserRequestedOption[Radio]" value="1" '.checked($data['Radio'], 1, false).' />';
$html .= '<input type="checkbox" name="CMBUserRequestedOption[Checkbox]" value="1" '.checked($data['Checkbox'], 1, false).' />';