0

我已经在 WordPress metabox 中实现了 radio-group 选项。我在带有相应标签的元框中获得了所需的收音机组,但我未能在选择收音机或保存我正在使用它的帖子时更新我的​​选中状态。我想我有什么需要说的。

<div class="my radio group">
<h2>my radio group </h2>

 <?php

  $cars = array('BMW', 'FERRARI', 'PORSCHE', 'BENTALI', 'MRX', 'CHEVROLET');


 foreach ($cars as $car) {
    echo  '<input name="my-best-car" type="radio"  onchange="javascript:document.post.submit()"';
    $option = 'id=" ' .$car . '"';
    $option = '<value="' . $car . '"';

    if ($car == $my_favorite_car) $option .= "checked";
    $option .= '>';
    $option .= '<label for=" '.$car .' ">' . $car .'  ';

    $option .=  '</label>';
    echo $option;
  }
 ?>
</div>

还添加了 WordPress 元框保存功能。我的其他选项类型,如文本、选择和复选框正确更新。当我尝试使用以下方法更新我的 RADIO-GROUP 元值时:

update_post_meta($post_id, 'my-best-car', $_POST['my-best-car'], true); 
4

1 回答 1

1

好的,我在 foreach 循环中发现了你的错误,你在值之前有一个 < 额外的,所以该行看起来像这样:

$option = 'value="' . $car . '"';

此外,您的 js 没有提交表单,因此只需在 head 中添加 js 函数,例如:

<script>
   function submitOnClick(formName){
       document.forms[formName].submit();
   }
</script>

并以以下形式代替:

onchange="javascript:document.post.submit()"

onclick="submitOnClick(\'myForm\')"

我试过了,它可以工作你只需要相应地重命名你的表单名称

于 2012-12-22T18:25:09.947 回答