私のコードを示して説明します:
if($_POST)
{
for ($records = 1; $records <= $_POST['numberofrecords']; $records++)
{
if((!in_array($_POST['user'][$records], $assigned_users, true))||($_POST['user'][$records]==''))
{
$phonePost['user'] = $_POST['user'][$records];
$phonePost['id'] = $_POST['id'][$records];
$this->autoprov_model->update_phone_user($phonePost);
}
else
{
//other actions.....
}
等....
$assigned_users は、現在選択されているすべての ID をリストするクエリです。
関連するhtmlは
<select name=user[<?=$lines;?>] style="position: relative; right: 120px;" onchange="submitform(this)">
<?php if($phone['user_id']=='')echo '<option value="">Unassigned</option>'?>
<?php foreach ($users_list as $user):?>
<?php if($user['id']==$phone['user'])$selected = 'selected="selected"'; else $selected = '';?>
<option value="<?=$user['id'];?>" <?=$selected?>><?=$user['name'];?></option>
<?php endforeach;?>
</select>
何が起こっているのかというと、私はすべての種類の ID ($assigned_user 配列に関連する) を投稿していますが、実際には配列にはありません。また、「」(空白)を投稿すると、更新されず、2番目のセクションにしか到達しません。
値を配列として投稿する際のトリックが不足している場合に備えて、ここで質問しますか?