<!-- html code -->
<form id="wpsc-settings-form" action="" method="post">
<tr class="rate_row">
<td>
<input type="text" style="width:160px;" value="3000" name="zipcode[]">
</td>
<td>
<select multiple="" name="city[]">
<option value="Abbotsford">Abbotsford</option>
<option value="Aberfeldie">Aberfeldie</option>
<option value="Airport West">Airport West</option>
</select>
</td>
<td>
<input type="text" style="width:160px;" value="3000" name="zipcode[]">
</td>
<td>
<select multiple="" name="city[]">
<option value="Abbotsford">Abbotsford</option>
<option value="Aberfeldie">Aberfeldie</option>
<option value="Airport West">Airport West</option>
</select>
</td>
</tr>
</form>
<!-- php code -->
<?php
$options = $_POST['zipcode'];
$city = $_POST['city'];
$serializeoption = serialize($city);
foreach($city as $key => $value){
$simple_shipping_options_city[$options[$key]] = $value;
}
echo "<pre>";
print_r($simple_shipping_options_city);
echo "</pre>";
update_option('wpsc_simple_shipping_city', $simple_shipping_options_city); // update query
?>
上記のコードは次のように動作します。1 つの都市を選択すると、出力は次のようになります。
Array
(
[3000] => Abbotsford
[2000] => Airport West
)
複数の都市を選択すると、入力フィールドの値が渡されません。
複数の都市に対して単一の郵便番号を保存したい。上記のコードの改善案を教えてください。