0

我需要用相同的键保存到数组值中。例如,对于选择名称“crop43”,我需要保存两个值:垂直和水平。

元框中的输入字段:

<p>
<label for="crop43">4:3 Crop position</label>
<select name="crop43[]" style="width: 10%">
    <option>Center</option>
    <option>Top</option>
    <option>Bottom</option>
</select>
<select name="crop43[]" style="width: 10%">
    <option>Center</option>
    <option>Left</option>
    <option>Right</option>
</select>
</p>

保存程序:

if(isset($_POST['crop43'])) {
    update_post_meta($post->ID, 'crop43', $_POST['crop43']);
}

它只保存最后的信息(水平位置),而不是垂直的。

4

1 回答 1

0

一个更简单的解决方案是重命名 2 个选择。

<p>
<label for="vertical">4:3 Crop position</label>
<select name="vertical" style="width: 10%">
    <option>Center</option>
    <option>Top</option>
    <option>Bottom</option>
</select>
<select name="horizontal" style="width: 10%">
    <option>Center</option>
    <option>Left</option>
    <option>Right</option>
</select>
</p>

然后,您可以执行以下操作:

if(isset($_POST['horizontal'] && isset($_POST['vertical]){

$array = array();
$array['horizontal'] = $_POST['horizontal'];
$array['vertical'] = $_POST['vertical'];
$crop43 = json_encode($array);

update_post_meta($post->ID, 'crop43', $crop43);

}

然后,当您想将数据库值更改回数组时,请使用 json_decode。

于 2013-06-20T21:40:18.753 回答