-2

我将通过显示我的代码来解释:

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.....
       }

ETC....

$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 数组相关),但实际上并未在数组中。而且当我发布''(空白)时,它们永远不会更新,只会到达第二部分。

我在这里问我是否错过了将值发布为数组的技巧?

4

1 回答 1

0
  1. 您应该在您的选择标签中将名称放在引号中。像这样:name="user[<?=$lines;?>]"
  2. $assigned_users应该是一个数组。
  3. 检查存在isset($_POST['user'][$records])而不是将其与空字符串进行比较,或者简单地试试这个if((@in_array($_POST['user'][$records], $assigned_users, true)==false){
于 2013-04-23T15:03:02.990 回答