如何在一个函数中使用多个复选框值并在数据库中插入值

时间:2011-05-12 作者:Harjeet Singh

我正在处理一个自定义主题,其中有上载图像的选项。我有一些复选框,用户可以根据图像的位置选择。我的表单代码如下:

<input type="checkbox" class="input" name="vtype[]" value="3"/>
<input type="checkbox" class="input" name="vtype[]" value="4" />
<input type="checkbox" class="input" name="vtype[]" value="5" />
<input type="checkbox" class="input" name="vtype[]" value="6" />
使用这些值的函数是:

$image_category = implode(\',\', $_POST[\'vtype\']);
如果我重复此结果,则结果很好,例如3、4、5。但如果我尝试使用此值在数据库中插入值,则该值仅在第1个类别中更新,其余类别不会发生任何变化。

主要功能是在数据库中插入值is:

$post = array(
      \'ID\' => \'\',
      \'post_author\' => $image_author, 
      \'post_category\' => array($image_category),
      \'post_content\' => $image_to_attach, 
      \'post_title\' => $image_title,
      \'post_status\' => \'publish\'
        );
    }
    // Insert the values in DB
    $id = wp_insert_post($post);

2 个回复
最合适的回答,由SO网友:Geert 整理而成

当前正在传递此值:

\'post_category\' => array(\'3,4,5\') // This is a single string
当您应该这样做时:

\'post_category\' => array(3,4,5) // Three separate values
不要忘记清理POST值:

// Initialize categories
$post_category = array();

// Prevent "undefined variable" error notices
if (isset($_POST[\'vtype\']))
{
  // Loop over selected categories
  foreach ((array) $_POST[\'vtype\'] as $vtype)
  {
    // Validate vtype (only numbers allowed)
    if (ctype_digit((string) $vtype))
    {
      // Add category
      $post_category[] = (int) $vtype;
    }
  }
}

// Save the post with $post_category in database as you did before...
如果你愿意的话,你也可以把整个方块缩短成一行。只是为了好玩:

$post_category = (isset($_POST[\'vtype\'])) ? array_filter((array) $_POST[\'vtype\'], \'ctype_digit\') : array();

SO网友:ABHISHEK GUPTA

使用复选框提交多个值的另一种方法,享受:)

\'day\'=> $days ); $format=array( \'%s\'); $succes=$wpdb->insert( $table, $data, $format ); if($succes){ echo \'Your values has been submitted\'; } else{ echo "error in submitting"; } } ?> 日期:任何日期:周日:周一:周二:周三:周四:周五:周六:

结束

相关推荐

如何让我的自定义帖子类型出现在NAV-menus.php‘Menu’中?

我的自定义帖子类型有点问题。我可以在我的主题中很好地创建它们,但我无法让它们显示在“菜单”屏幕中。。。至少在默认情况下不是这样。我曾尝试在代码中添加菜单和UI标志(见下文),但没有成功。有趣的是,当我启用自定义帖子类型UI插件时,自定义帖子类型在“菜单”屏幕中显示良好(有时)。这似乎向我暗示,我在某个地方遗漏了一个步骤,而且不知何故,自定义帖子类型UI插件设置了该标志,并允许我的自定义帖子类型和分类显示在导航菜单中。php“菜单”屏幕。编辑::以上位已回答。谢谢你,米洛。我应该在“屏幕选项”选项卡中打开它