代码检查一个复选框或另一个,但不是两个

时间:2013-02-26 00:01:22

标签: php wordpress checkbox

所以基本上,我有一个在wordpress上创建帖子时运行的函数。我已经通过添加以下代码修改了这个功能。

$episodeID = $_POST['item_meta'][137];
$episodeVersion = $_POST['item_meta'][357];



if ($episodeVersion == "Subbed") { 
    $value = array("Subbed");

    update_field('field_48', $value, $episodeID);

} 
else if ($episodeVersion == "Dubbed") { 
    $value = array("Dubbed");

    update_field('field_48', $value, $episodeID);



}

此代码基本上表示,如果该帖子中的字段值为“Subbed”,则通过选中“Subbed”复选框更新另一个复选框字段。如果它是“Dubbed”,则通过选中“Dubbed”复选框来更新复选框字段。

这非常合适,但是没有时间选中这两个复选框。如果我添加一个配有Dubbed的帖子,它会被复制,然后如果我添加一个Subbed的帖子,它将取消选中配音并检查subbed。

所以基本上,我怎么能这样做,所以它实际上不会取消选中已经检查过的东西。那么我该怎么用来检查复选框是否未选中或已选中?某种类型的布尔值true / false?

1 个答案:

答案 0 :(得分:0)

好的,所以我能够操纵一些代码并最终使其工作。

我所要做的就是检查在执行配音if语句时是否已经选中了Subbed复选框,反之亦然。

这是更新后的代码

$episodeID = $_POST['item_meta'][137];
$episodeVersion = $_POST['item_meta'][357];



if ($episodeVersion == "Subbed" && !(get_field('episode_sdversion') && in_array('Subbed', get_field('episode_sdversion', $episodeID))) ) { 
    if (get_field('episode_sdversion') && in_array( 'Dubbed', get_field('episode_sdversion'))) {    
        $value = array("Subbed", "Dubbed");         
    } else {
        $value = array("Subbed");
    }       

    update_field('field_48', $value, $episodeID);

} 
if ($episodeVersion == "Dubbed" && !(get_field('episode_sdversion') && in_array('Dubbed', get_field('episode_sdversion', $episodeID))) ) { 

    if (get_field('episode_sdversion') && in_array( 'Subbed', get_field('episode_sdversion'))) {    
        $value = array("Subbed", "Dubbed");         
    } else {
        $value = array("Dubbed");
    }

    update_field('field_48', $value, $episodeID);



}