2015-12-09 44 views
1

我正在设计一个管理界面,管理员可以一次修改所有网站的成员(批量编辑)。我们已经有一个编辑,但他们希望能够一次编辑所有用户,我想这样做,因此只有一个“提交”按钮。然后PHP代码应该遍历每条记录,根据需要查找更改和更新。我知道如何做所有事情,只是循环记录。我试着创建一个数组,计算帖子记录,我只是没有足够的数组或多维数组。这里是我现有的POST页代码:

<?php $i = 0; 
 
    while($member_list = mysql_fetch_array($getmembers)){ \t \t \t \t \t \t \t \t \t 
 
    ?> 
 
       <tr style="vertical-align:top;"> 
 
        <td><input type="text" name="userid[<?=$i?>]" readonly value="<?php echo $id; ?>" style="width:40px;"></td> 
 
        <td><input type="text" name="username[<?=$i?>]" value="<?php echo $member_list['mem_username']; ?>" onchange='changes=true;' style="width:90px;"></td> 
 
        <td><input type="text" name="firstname[<?=$i?>]" value="<?php echo $member_list['first_name']; ?>" onchange='changes=true;' style="width:90px;"></td> 
 
        <td><input type="text" name="lastname[<?=$i?>]" value="<?php echo $member_list['last_name']; ?>" onchange='changes=true;' style="width:90px;"></td> 
 
        <td><input type="text" name="email[<?=$i?>]" value="<?php echo $member_list['email']; ?>" onchange='changes=true;'></td> 
 
        <td><textarea name="notes[<?=$i?>]" cols="20" rows="2" onchange='changes=true;'><?php echo $member_list['admin_notes']; ?></textarea></td> 
 
       </tr> 
 
<?php \t $i = $i + 1; \t } ?>

它发布到:

$user_records = array(count($_POST['userid'])); // create the array 

foreach ($user_records as $value) { // go through array 
    $user_records[] = array(// Go through the array 
     $username => $_POST['username'.$i], 
     $firstname => $_POST['firstname'.$i], 
     $lastname => $_POST['lastname'.$i], 
     $email => $_POST['email'.$i], 
     $notes => $_POST['notes'.$i], 
     ); 

     echo $username . ' | ' . $firstname; //this line is for testing to display only 
     // Then posting comparison occurs and is updates as needed 
} 

因此,概括地说 - 当我运行上面的例子中,我得到5管道(6个区域的分离器数量),但没有得到任何数据,也没有通过任何其他记录循环。我知道我错过了一些东西,只是不能让我的头脑看到它。任何建议,非常感谢。

注意:显然我会阻止SQL注入并清理最终版本中的东西。我只是想弄清楚这里的逻辑。

+1

'var_dump($ _ POST);'return? – Daan

+1

返回帖子中的所有数据。你想看到返回的数据样本吗? – FlyBoy

+0

很明显,它在这里发布。 – Daan

回答

2

您从未在您的处理循环中定义$i,因此您正在访问未知/未定义的数组键。

既然你已经在你的HTML通过userid[$i]东西定义明确的钥匙,你的循环应该是:

foreach($_POST['userid'] as $key => $userid) { 
    $username = $_POST["username"][$key]; 
    $firstname = $_POST["firstname"][$key]; 
    etc... 

注意每个用户名/姓名/等如何......本身也成为阵列。它不是username42,它是username[42]来访问该特定字段。

+0

嗯,好点。让我试试这个。谢谢。我会让你知道结果。 – FlyBoy

+0

就是这样!完善!非常感谢Marc B! – FlyBoy

相关问题