【问题标题】:insert via checkbox通过复选框插入
【发布时间】:2011-05-03 08:40:19
【问题描述】:

我创建了一个页面来显示与特定经理相关或低于特定经理的所有用户。如果用户已经注册,他的帐户将被停用,直到相关人员激活它。我已经显示了所有用户和一个复选框是停用还是激活。提交时,插入命令不起作用,数据库中没有任何更改。我有隐藏但无法应用的用户 ID。你能帮帮我吗

<?php

//get userid from login session

        $memberid = $_SESSION['SESS_MEMBER_ID'];

    //display all users concerning the user(login) is leader
        $sql = mysql_query("SELECT * FROM user WHERE userid in (SELECT userid FROM dept_user WHERE lead_id = '$memberid')");

       //display results in table
        print '<table border=1>';

print '<tr><td>Activate</td><td>First Name</td><td>Last Name</td><td>Email</td>td>Activate</td>';

print '<form method="GET" action="'.$PHP_SELF.'">';

$count = 0;

  while($res = mysql_fetch_array($sql)){

 $activate = $res['activate'];

 $checked = '';

$user = $res['userid'];

  if ($activate=='1'){

$checked = 'checked';

        }

 print '<tr><td><input type="checkbox" value="'.$user.'" name="activate[]" '.$checked.'></td>';

 print '<td>'.$res['firstname'].'</td>';

 print '<td>'.$res['lastname'].'</td>';

  print '<td>'.$res['email'].'</td>';

  print '<td>'.$res['activate'].'</td></tr>';

  print '<input type="hidden" name="userid" value="'.$user.'">';

   $count++;

  }

  print '</table>';


print '<br />With selected do:<br />';

print '<select name="useridselect">';

print '<option value="Select">Select</option>';

print '<option value="1">Activate</option>';

print '<option value="0">Desactivate</option>';

print '</select>';

print '<br /><input type="submit" value="Submit" name="submit">';

print '</form>';

    $useridselect = $_GET['useridselect'];

if(isset($_GET['submit'])){

foreach($_GET['activate'] as $value){

print_r($value);

$update=mysql_query("UPDATE user SET activate='$useridselect' WHERE userid='$user'");
        }

for($i=0;$i<$count;$i++){

$sql1="UPDATE user SET activate='$useridselect' WHERE userid='$user'";

$result1=mysql_query($sql1);

}

}   else{

echo 'No actions yet performed';

}

?>

【问题讨论】:

  • 定义“不工作”。发生什么或不发生什么?查询是什么样的?
  • 数据库选择和数据库连接的命令在哪里?
  • 连接在另一个文件上。除了保存阶段,所有工作都正常。无法处理useid。我需要为激活设置 1,为停用设置 0

标签: php sql checkbox insert while-loop


【解决方案1】:

我认为您的更新查询失败,因为您没有分配复选框值:

foreach($_GET['activate'] as $value){ print_r($值); //这里不是userid='$user'应该是userid='$value' $update=mysql_query("UPDATE user SET activate='$useridselect' WHERE userid='$value'"); }

我不明白下面代码的用途。

for($i=0;$i

注意:请确保至少选中一个复选框。

【讨论】:

  • 谢谢博士。它的工作。假设我希望在组合框上添加另一个选项来删除记录。可以在里面实现吗??
【解决方案2】:

将您的 GET 方法更改为 POST 方法,这样隐藏的值也会被 POSTED 到脚本中。此外,分离数据库逻辑比一遍又一遍地引用相同的脚本更容易。

【讨论】:

    【解决方案3】:

    您也可以按照相同的逻辑进行删除。使用值为 userid 的复选框数组

    【讨论】:

      猜你喜欢
      • 2021-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-19
      • 1970-01-01
      • 2016-09-14
      • 2016-01-27
      • 1970-01-01
      相关资源
      最近更新 更多