按提交按钮分<input type="submit" name="update"
<input type="submit" name="delete"
if(!empty($_POST["update"])) //if(isset($_POST["update"]))
if(!empty($_POST["delete"]))
<input type="submit" name="delete"
if(!empty($_POST["update"])) //if(isset($_POST["update"]))
if(!empty($_POST["delete"]))
解决方案 »
- php 文件上传问题,不用move_uploaded_file,行不行?
- 这个匹配为什么错了,,正则表达式难题
- 看下这个代码有问题吗?
- 如何将 <img>替换成<img/>
- 请问php中有没有哪个函数可以判断出某个值是这个数组的最后一个值
- Mysql下存取图片,求助!
- 急急急!Solaris操作系统下提示Too many connections错误,PHP.ini中明明没有限制的。为什么???
- Help me!Help me!!... ...
- 淘宝api签名请求参数q查询中文出错
- php获取yy频道的在线人数
- meta标签自动刷新问题:刷新数次后,页面丢失!
- 超级郁闷的问题,smarty的date_format函数
这个是没有问题的,检查你的代码...
<?php while (....){?>
<input type="checkobx" name="selectid[]" id="selectid[]">記錄的標題[回復]
<form>
.....
</form>
<?php }?>
</form>
=====================
//全选
function select_all(formid,checkid){
for (var i=0;i<document.getElementById(formid).elements.length;i++)
if (document.getElementById(formid).elements[i].name==checkid)
document.getElementById(formid).elements[i].checked=true;
}
=================
按扭:onClick="select_all('main_form','selectid[]');"
可能在ie里可以传值,没有试,只是js代码在ie里取不到值,
上面是我的外层form的chechbox全选的js代码,在FF里没问题,在IE里就全选不了,去掉嵌套的form在IE就正常全选了,
不全选用手点击勾选一个后js取不到值,下面是提交后判断是否有勾选,这个也通不过,提示“请至少选择一项”,同样去掉嵌套的form就可以:
function select_one(formid,checkid){
var selectone=false;
for (var i=0;i<document.getElementById(formid).elements.length;i++){
if (document.getElementById(formid).elements[i].name==checkid){
if (document.getElementById(formid).elements[i].checked==true){
selectone=true;
return true;
}
}
}
if(!selectone){
alert("请至少选择一项 !");
return false;
}
}
-------------------
没想通为什么非要嵌套
=============================
<form name="main_form" id="main_form"><input type="checkobx" name="selectid[]" id="selectid[]">記錄的標題[回復]
<form>
<textarea name="Content" id="Content">textarea>
<input type="submit" name="Submit" value="提交加復">
</form>
--------------
<input type="checkobx" name="selectid[]" id="selectid[]">記錄的標題[回復]
<form>
<textarea name="Content" id="Content">textarea>
<input type="submit" name="Submit" value="提交加復">
</form>
--------------
<input type="checkobx" name="selectid[]" id="selectid[]">記錄的標題[回復]
<form>
<textarea name="Content" id="Content">textarea>
<input type="submit" name="Submit" value="提交加復">
</form>
-------------
<input type="checkobx" name="selectid[]" id="selectid[]">記錄的標題[回復]
<form>
<textarea name="Content" id="Content">textarea>
<input type="submit" name="Submit" value="提交加復">
</form>
-------------
<input type="button" name="Submit" value="全選" onClick="select_all('main_form','selectid[]');">
<input type="button" name="Submit" value="取消選擇">
<input type="submit" name="Submit" value="刪除記錄">
</form>
==============================
循環輸出後結構就是這樣,每條記錄有一個回復功能,又可以批量刪除記錄,
如果回復是另開窗口的就不用嵌套了,但我用了ajax做無刷新回復,點擊[回復]在相應的記錄下顯示原本隱藏起來的textarea輸入框,直接對這條記錄回復。回復成功後又隱藏textarea輸入框顯示回復內容,整個過程都不用刷新網頁。
textarea名字是動態命名,不會重復的,
<textarea name="Content<?php echo $i?>" id="Content<?php echo $i?>"></textarea>
後台用$_POST["Content".$i];
現在我想去掉嵌套form.全部用一個form,但不知道怎麼識別提交的是第幾第記錄,也就是後台的$_POST["Content".$i];中的i的值不知道怎麼得到,
可以给你的submit input用不同的name,就可以区分开,
======================
我用記錄的id給它們命名,id是唯一的,所以所有form裡面的東西名字都不同的,
submit名字也是不同的,但是我又怎麼知道我點擊了哪個submit呢?
程序通过$_POST['contentID']知道提交的是哪一篇文章。
用两个不同ID的普通按钮用javascrip提交,一个提交你希望被包含的form;另一个用来提交主动包含的form。
其中主动包含的form中添加对应的隐藏域,通过javascrip方法给其赋值。
两个form不要互相包含,两个按钮可以放在任意位置。
程序通过$_POST['contentID']知道提交的是哪一篇文章。
====================
會有很多個<input type=hidden name="contentID" value="文章唯一id">,循環一次就有一個,重名$_POST['contentID']會了錯
====================
怎麼分開?分開checkbox多項選擇刪除怎麼實現?
里层的循环照旧,
外层的批量删除可以通过javascript构造sql的方式传递 IDs
delete.php?id[1]=XXX&id[2]=XXX纯属理论,有待考证
<input type=hidden name="setID[]" value="">
<input type=button name="" value="提交回复">
<input type=hidden name="getid" value="<?php echo id?>">
======================
我想这样,将getID[]放在提交回复按扭旁边,点击“提交回复”用将getid的值赋给setID[],
这样只有一个setID[]是有值的,其它都是空,
然后在后台读取所有setID[],有值的就是要回复的id记录了,就可以得到回复内容$_POST["Content".$setID];回复成功后再用js将所有的setID[]设成空值。
这样的操作不能用id名字赋值,要用点击"提交回复"后,将它的下一个元素的值赋给上一个元素,不知道怎么操作上下元素的值?
请问怎么将下一个元素的值传给上一个元素?然后再怎么设置所有setID[]的值为空?
<input type=button name="" value="提交回复" onClick="javascript:this.previousSibling.setAttribute('value',this.nextSibling.getAttribute('value'));">
<input type=hidden name="setID[]" value="">
<input type=button name="" value="提交回复" onlick="setID('formname',this,'setID[]')">
<input type=hidden name="getid" value="<?php echo id?>">
-----------------------------
function setID(formid,buttonid,preid){
for (var i=0;i<document.getElementById(formid).elements.length;i++){
if (document.getElementById(formid).elements[i].name==preid){
document.getElementById(formid).elements[i].value="";
}
}
buttonid.previousSibling.setAttribute('value',buttonid.nextSibling.getAttribute('value'));
}
========================
这样在ie上没问题了,在ff上不能setAttribute赋值给“提交按扭”前面的元素setID[],
for 循环是赋值前清空所有setID[]的值,可以正确清空,但就是因为这个for使setAttribute赋值在ff上出问题,
去掉for在ff上就可以给setID[]设置getid有值了,下面这样就可以:
function setID(formid,buttonid,preid){
buttonid.previousSibling.setAttribute('value',buttonid.nextSibling.getAttribute('value'));
}
为什么?setID[]只能一个有值,我需要在赋值前清空所有setID[]的值,为什么有for循环在ie上行在ff上就不行,在ff上setAttribute和前面的for有什么关系?就差这一点了,惨啊
上面用了笨方法,其实不用数组的,
不要将这句放在循环里<input type=hidden name="setID[]" value="">,放在外面改成<input type=hidden name="setID" id="setID" value="">
这样就只有一个setID,不必用数组操作这么麻烦了,
然后提交函数改成这样就知道提交哪条记录了,好简单啊:onclick=setID(this,"setid")
function setID(buttonid,preid){
document.getElementById(preid).value=buttonid.nextSibling.getAttribute('value');
}