求助基本操作:在一览画面对记录作增加、修改和删除 主要是在删除多条记录时,要传递id的数组,用get和 post方法都得不到传递的值 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把你的记录列表放在一个提交表单里面.每条记录前加一个多选框,默认值设置为记录的编号.例:<INPUT TYPE="checkbox" NAME="id" VALUE=".$id."> 选择提交后通过 $_POST["id"]; 得到数组! 因为有好几个动作处理,所以我的action提交给一个check.php,根据submit的name属性,返回不同的php处理,我现在每条记录前面用radiobox,只能删一条,是可以成功的:user.php<? mysql_connect ("localhost", "root", ""); mysql_select_db ("mealorder"); $userId =$_GET['userId']; mysql_query ("DELETE FROM USERINFO WHERE USERID='$userId'");?><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body ><form method= "POST" name="form1" action= "check.php"> <table border="1" align=center> <tr> <td width=80 align="center">选择</td> <td width=200 align="center">姓名</td> </tr><? mysql_connect ("localhost", "root", ""); mysql_select_db ("mealorder"); $restlist=mysql_query ("SELECT USERID, USERNAME , PASSWORD FROM USERINFO ORDER BY USERNAME"); while ( $aaa = mysql_fetch_array($restlist) ) {?> <tr> <td align = "center"> <input type = "radio" name = "userId" value = <? echo($aaa["USERID"]); ?>></td> <td align = "center"> <? echo($aaa["USERNAME"]); ?> </td> </tr><? }?></table> <table border="0" align=center> <td><input type=button value="新 建" onclick="newAdd()"></td> <td><input type=submit name=reAddPeo value="修 改" onclick="reAdd()"></td> <td><input type=submit name=delPeo value="删 除" onclick="del()" ></td> <td><input type=button value="返 回" onclick="reList()"></td> </table></form></body></html><script language ="javascript"> function reList(){ window.location.href = "login.php";} function newAdd(){ window.location.href = "adduser.php";}function del(){ form1.submit();}function reAdd(){ form1.submit();}</script>check.php<? $userId = $_POST['userId'];if($_POST['delPeo']){ $redirect_url = "user.php?userId=".$userId; header("Location: ".$redirect_url);}......?>但是传id数组的时候,用了不少方法,不能从check.php会传到user.php 提交时可以用name="id[]"接收时用$id = $_POST['id']或$id = $_GET['id']然后这个$id就是个数组 我以前做过一个类似的。主要想法是把数组变成一个以某个符号分割的字符串,比如‘:’$id_str = array[0];for ($i=1; $i<count(array); $i++) $id_str = $id_str.':'.array[$i];然后urlencode,传递给操作页在deldete.php中使用split()分解数据库$id_arr = split (':',$id_str);我没仔细看你的代码,不确定你问的是不是这个意思,希望能帮到你 谢谢zfol_510(第九号梦想)不过我在传id数组到check.php时,得到的是所有一览画面出现记录的id,而不只是选择的那些记录的id。这个该怎么解决啊谢谢! mynamesucks(C++ Primer钻研中) 已经说的很清楚了多选框命名用id[],这样post过去的变量就是你所选的id构成的数组! 说错了,我如果从第一条记录开始连续选择若干条,结果是正确的不过,如果不从第一条开始,或者中间空了几条再选,就会有问题,会少显示记录check.php<? $id = $_POST['id'];//print_r($id );$id_len = count($id);//echo "$id_len<br>";foreach($id as $key => $value){ static $i=0; $key = $i; $i++; //echo "key: ".$key."\n".$value."<br>" ; }//echo "<br>";$id1 = $id[0]; for ($i=1; $i<$id_len; $i++) { $id1 = $id1.':'.$id[$i];}echo "$id1"; 多选框命名用id[]我回传时用的是类似于下面的语句,好像不能传递数组$redirect_url = "userinfo_maintenance.php?id=".$id1; header("Location: ".$redirect_url);如果我提交给本画面,用数组传自然没问题,我也实现了,但是现在还有修改等其他操作,我用name 属性区分不同动作,每个处理都提交给check.php,再由它返回给不同画面 我觉得没必要作check.php,三个处理都放到user.php,就是在action中出现了问题, function Delete() { if(confirm("Delete?")) { document.form1.deleteflag.value = "delete";//删除 document.form1.submit(); } }还有,<table> <form method="POST" action="user.php" name="form1">......<td align = "center"><input type="checkbox" name="<?php echo($aaa["USERID"]);?>"></td>......</form></table> 我想问一下,如果要做类似下面的网站,都需要用什么来做 求助:linux下php链接数据库出空白页 简单的选择类别效果问题?有图 讨论哈cms系统静态化的问题 关于AJAX和PHP的交互 帮忙修改一下 哪位有识之士建一个群来讨论讨论 PHP 与 Smarty 吧。 紧急求助!给我一个用PHP发送邮件的例子!在线等待!!!!!!!!!!!!!!!! 怎会这样呢? 那位推荐一下学php参考书 复选框变量值传递问题 过虑部分字符
每条记录前加一个多选框,默认值设置为记录的编号.
例:<INPUT TYPE="checkbox" NAME="id" VALUE=".$id.">
选择提交后
通过 $_POST["id"]; 得到数组!
mysql_connect ("localhost", "root", "");
mysql_select_db ("mealorder");
$userId =$_GET['userId'];
mysql_query ("DELETE FROM USERINFO WHERE USERID='$userId'");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body ><form method= "POST" name="form1" action= "check.php">
<table border="1" align=center>
<tr>
<td width=80 align="center">选择</td>
<td width=200 align="center">姓名</td>
</tr>
<? mysql_connect ("localhost", "root", "");
mysql_select_db ("mealorder");
$restlist=mysql_query ("SELECT USERID, USERNAME , PASSWORD FROM USERINFO ORDER BY USERNAME");
while ( $aaa = mysql_fetch_array($restlist) ) {
?>
<tr>
<td align = "center"> <input type = "radio" name = "userId" value = <? echo($aaa["USERID"]); ?>></td>
<td align = "center"> <? echo($aaa["USERNAME"]); ?> </td>
</tr>
<?
}?>
</table>
<table border="0" align=center>
<td><input type=button value="新 建" onclick="newAdd()"></td>
<td><input type=submit name=reAddPeo value="修 改" onclick="reAdd()"></td>
<td><input type=submit name=delPeo value="删 除" onclick="del()" ></td>
<td><input type=button value="返 回" onclick="reList()"></td>
</table></form>
</body>
</html><script language ="javascript">
function reList()
{
window.location.href = "login.php";
} function newAdd()
{
window.location.href = "adduser.php";
}function del()
{
form1.submit();
}function reAdd()
{
form1.submit();
}
</script>
check.php<?
$userId = $_POST['userId'];
if($_POST['delPeo']){
$redirect_url = "user.php?userId=".$userId;
header("Location: ".$redirect_url);
}......
?>但是传id数组的时候,用了不少方法,不能从check.php会传到user.php
接收时用$id = $_POST['id']或$id = $_GET['id']
然后这个$id就是个数组
$id_str = array[0];
for ($i=1; $i<count(array); $i++)
$id_str = $id_str.':'.array[$i];
然后urlencode,传递给操作页
在deldete.php中使用split()分解数据库
$id_arr = split (':',$id_str);我没仔细看你的代码,不确定你问的是不是这个意思,希望能帮到你
已经说的很清楚了
多选框命名用id[],这样post过去的变量就是你所选的id构成的数组!
说错了,我如果从第一条记录开始连续选择若干条,结果是正确的
不过,如果不从第一条开始,或者中间空了几条再选,就会有问题,会少显示记录
check.php
<?
$id = $_POST['id'];
//print_r($id );$id_len = count($id);
//echo "$id_len<br>";foreach($id as $key => $value){
static $i=0;
$key = $i;
$i++;
//echo "key: ".$key."\n".$value."<br>" ;
}//echo "<br>";$id1 = $id[0];
for ($i=1; $i<$id_len; $i++)
{
$id1 = $id1.':'.$id[$i];
}
echo "$id1";
多选框命名用id[]
我回传时用的是类似于下面的语句,好像不能传递数组$redirect_url = "userinfo_maintenance.php?id=".$id1;
header("Location: ".$redirect_url);如果我提交给本画面,用数组传自然没问题,我也实现了,但是现在还有修改等其他操作,我用name 属性区分不同动作,每个处理都提交给check.php,再由它返回给不同画面
function Delete()
{
if(confirm("Delete?"))
{
document.form1.deleteflag.value = "delete";//删除
document.form1.submit();
}
}
还有,<table> <form method="POST" action="user.php" name="form1">
......
<td align = "center"><input type="checkbox" name="<?php echo($aaa["USERID"]);?>"></td>
......
</form>
</table>