每行的复选框 可以当做seturl数组中的下标;
1.更改指定的数组记录
假设按钮标识是action=edit
当用户选中0个或多个复选框,然后提交表单。相应的id会一起提交过去。
更改记录的id号有了, 然后直接覆盖 下标对应的数组, 修改完成。
2.删除指定的数组记录
假设按钮标识是action=delete
(同更改指定的数组记录 逻辑上是一致的。)
用户选中0个或多个复选框,然后提交表单。相应的id会一起提交过去。
id有了,直接删除数组对应的下标 实现删除。
######请问: 更改勾选的指定记录(如第3条数据)为“显示”状态('type'值改为'1'),activation.php中if($dopost=="show"),如何写啊?我写的$dquery = str_replace(array('1'), array('2'), $dquery);不成功。求大侠相助,不胜感激。
activation.php
//删除(或清空)勾选的记录
if($dopost=="del")
{
$ids = explode('-',$ids);
$dquery = "";
foreach($ids as $id)
{
if($dquery=="")
{
$dquery .= "id='$id' ";
}
else
{
$dquery .= " OR id='$id' ";
}
}
if($dquery!="") $dquery = " WHERE ".$dquery;
// 这里不会写
$dquery = str_replace(array('1'), array('2'), $dquery);
// ShowMsg("成功删除指定的记录!","test.php");
exit();
}
//更改勾选的记录为“显示”状态('type'值为'1')
if($dopost=="show")
{
$ids = explode('-',$ids);
$dquery = "";
foreach($ids as $id)
{
if($dquery=="")
{
$dquery .= "id='$id' ";
}
else
{
$dquery .= " OR id='$id' ";
}
}
if($dquery!="") $dquery = " WHERE ".$dquery;
// 这里不会写
$dquery = str_replace(array('1'), array('2'), $dquery);
ShowMsg("成功更改勾选的记录!","./test.php");
exit();
}
//更改勾选的记录为“隐藏”状态('type'值为'2')
if($dopost=="hide")
{
$ids = explode('-',$ids);
$dquery = "";
foreach($ids as $id)
{
if($dquery=="")
{
$dquery .= "id='$id' ";
}
else
{
$dquery .= " OR id='$id' ";
}
}
if($dquery!="") $dquery = " WHERE ".$dquery;
// 这里不会写
$dquery = str_replace(array('1'), array('2'), $dquery);
ShowMsg("成功更改指定的记录!","./test.php");
exit();
}
?>
test.php
$tips = '';
if( isset($_GET['act']) && $_GET['act']=='seturl' && isset($_POST['edit']) && $_POST['edit']==1){
$datas = $_POST;
foreach($seturl['type'] as $k=>$v){
if(trim($seturl['oldurl'][$k])==''){
unset($seturl['type'][$k]);
unset($seturl['oldurl'][$k]);
unset($seturl['newurl'][$k]);
}
}
if(file_put_contents('data.php',"<?php \n \$seturl = ".var_export($seturl,true).";\n?>")){
$tips = '修改成功!';
}else{
$tips = '修改失败!';
}
}
?>
function ReSel(){
for(i=0;i
document.configform.logs[i].checked = true; //如果是实现【全不选】的话,改成false即可
}
}
function SeSel(){
for(i=0;i
if(document.configform.logs[i].checked) document.configform.logs[i].checked = false;
else document.configform.logs[i].checked = true;
}
}
function DelSel(){
var nid = getCheckboxItem();
if(nid==""){
alert("请选择项目!\r\n");
return ;
}
location.href = "activation.php?dopost=del&ids="+nid;
}
function ShowSel(){
var nid = getCheckboxItem();
if(nid==""){
alert("请选择项目!\r\n");
return ;
}
location.href = "activation.php?dopost=show&ids="+nid;
}
function HideSel(){
var nid = getCheckboxItem();
if(nid==""){
alert("请选择项目!\r\n");
return ;
}
location.href = "activation.php?dopost=hide&ids="+nid;
}
//获得选中文件的文件名
function getCheckboxItem(){
var allSel="";
if(document.configform.logs.value) return document.configform.logs.value;
for(i=0;i
{
if(document.configform.logs[i].checked){
if(allSel=="")
allSel=document.configform.logs[i].value;
else
allSel=allSel+"-"+document.configform.logs[i].value;
}
}
//alert(allSel); //1-2-7
return allSel;
}
数组管理测试 |
if(is_file('data.php')){
include('data.php');
if(is_array($seturl)){
foreach($seturl['type'] as $k=>$v){
?>
onMouseOut="javascript:this.bgColor='#FFFFFF';">
>显
>隐■■■■■■
to
}
}
}
?>
onMouseOut="javascript:this.bgColor='#FFFFFF';">
显
隐■■■■■■
to
(删除一条可清空该条保存)
$(function(){
$("#add").click(function(){
$("#fbox").before('
显隐■■■■■■ to ');});
});
data.php
$seturl = array (
'type' =>
array (
0 => '1',
1 => '2',
2 => '2',
3 => '1',
4 => '1',
5 => '1',
6 => '1',
7 => '1',
8 => '1',
9 => '1',
),
'oldurl' =>
array (
0 => 'oldurl1',
1 => 'oldurl2',
2 => 'oldurl3',
3 => 'oldurl4',
4 => 'oldurl5',
5 => 'oldurl6',
6 => 'oldurl7',
7 => 'oldurl8',
8 => 'oldurl9',
9 => '33',
),
'newurl' =>
array (
0 => 'newurl1',
1 => 'newurl2',
2 => 'newurl3',
3 => 'newurl4',
4 => 'newurl5',
5 => 'newurl6',
6 => 'newurl7',
7 => 'newurl8',
8 => 'newurl9',
9 => '33',
),
);
?>
######
dopost=show的url请求 文件中好像没有吧 这里是点击保存按钮,实现修改选中项记录的功能
更改一条记录的流程:
用户选中第3条记录的复选框,
将其中的显示/隐藏和文本框字段修改为新值
然后点击保存按钮
提交给php文件处理,将传过来的数组为seturl的记录,数组下标为2的项 重新赋值
实现保存
另外,也可以将seturl的数组对应的值 全部重新赋值,这个是全篇保存了。