php+js批量提交修改内容
时间:2010-01-13
来源:互联网
今天自己鼓捣出来的,经过测试,完全达到目标,所以共享出来,起个抛砖引玉的作用,如果发现错误,请各位不吝赐教
先说明下,我是用smarty做的,所以分为2个php、1个html、1个js文件,因为是即兴就在编辑框打的代码,所以可能会某些名称出错,有些人可能会说不需要用到js,但是经过我检测,不用js只能按顺序批量,而无法忽略前面没选中的复选框直接获取后面选中的复选框的值,如果哪位大哥有可以不用js的方法请赐教下,代码如下:
///test.php
<?p
include("smarty_inc.php")
$smarty->display("test.html");
?>
///test.html
<script type="text/javascript" src="ajax.js"></script>
<div id="response"></div>
<form action="checkbox.php" method="post" onsubmit="selectpost()">
<input type="checkbox" name="check[]" value="1">
<select name="sale[]"><option>aa</option><option>bb</option></select>
<select name="sales[]"><option>cc</option><option>dd</option></select><br>
<input type="checkbox" name="check[]" value="2">
<select name="sale[]"><option>aa</option><option>bb</option></select>
<select name="sales[]"><option>cc</option><option>dd</option></select>
<input type="submit" name="submit" value="提交" />
</form>
///ajax.js
var xmlHttp;
function S_xmlhttprequest(){
if(window.ActiveXObject){
xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
}else{
xmlHttp = new XmlHttpRequest();
}
}
function selectpost(){
S_xmlhttprequest();
var check = document.getElementsByName("check[]");
var ale = document.getElementsByName("sale[]");
var id = document.getElementsByName("sales[]");
var totle=check.length;
var poststr="i="+totle;
for(i=0;i<totle;i++){
if(check.checked==true){
var uid = check.value;
var sale = ale.value;
var idd = id.value;
poststr+="&uid"+i+"="+uid+"&sale"+i+"="+sale+"&sales"+i+"="+idd;
}else{
uid="";
poststr+="&uid"+i+"="+uid;
}
}
var url="checkbox.php";
xmlHttp.open("POST",url,true);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.onreadystatechange = check_post;
xmlHttp.send(poststr);
}
function check_post(){
if (xmlHttp.readyState == 4){
if (xmlHttp.status == 200){
post();
}else{
window.alert("发生错误!");
}
}
}
function post(){
clear_response();
var response = xmlHttp.responseText;
document.getElementById("response").innerHTML = response;
}
function clear_response(){
var response = "";
document.getElementById("response").innerHTML = response;
}
///checkbox.php
$totle=$_POST;
for($i=0;$i<$totle;$i++){
$uid=$_POST[uid.$i];
if($uid!=""){
$said=$_POST[sale.$i];
$sid=$_POST[sales.$i];
echo $said.'|'.$sid;
}
}
先说明下,我是用smarty做的,所以分为2个php、1个html、1个js文件,因为是即兴就在编辑框打的代码,所以可能会某些名称出错,有些人可能会说不需要用到js,但是经过我检测,不用js只能按顺序批量,而无法忽略前面没选中的复选框直接获取后面选中的复选框的值,如果哪位大哥有可以不用js的方法请赐教下,代码如下:
///test.php
<?p
include("smarty_inc.php")
$smarty->display("test.html");
?>
///test.html
<script type="text/javascript" src="ajax.js"></script>
<div id="response"></div>
<form action="checkbox.php" method="post" onsubmit="selectpost()">
<input type="checkbox" name="check[]" value="1">
<select name="sale[]"><option>aa</option><option>bb</option></select>
<select name="sales[]"><option>cc</option><option>dd</option></select><br>
<input type="checkbox" name="check[]" value="2">
<select name="sale[]"><option>aa</option><option>bb</option></select>
<select name="sales[]"><option>cc</option><option>dd</option></select>
<input type="submit" name="submit" value="提交" />
</form>
///ajax.js
var xmlHttp;
function S_xmlhttprequest(){
if(window.ActiveXObject){
xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
}else{
xmlHttp = new XmlHttpRequest();
}
}
function selectpost(){
S_xmlhttprequest();
var check = document.getElementsByName("check[]");
var ale = document.getElementsByName("sale[]");
var id = document.getElementsByName("sales[]");
var totle=check.length;
var poststr="i="+totle;
for(i=0;i<totle;i++){
if(check.checked==true){
var uid = check.value;
var sale = ale.value;
var idd = id.value;
poststr+="&uid"+i+"="+uid+"&sale"+i+"="+sale+"&sales"+i+"="+idd;
}else{
uid="";
poststr+="&uid"+i+"="+uid;
}
}
var url="checkbox.php";
xmlHttp.open("POST",url,true);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.onreadystatechange = check_post;
xmlHttp.send(poststr);
}
function check_post(){
if (xmlHttp.readyState == 4){
if (xmlHttp.status == 200){
post();
}else{
window.alert("发生错误!");
}
}
}
function post(){
clear_response();
var response = xmlHttp.responseText;
document.getElementById("response").innerHTML = response;
}
function clear_response(){
var response = "";
document.getElementById("response").innerHTML = response;
}
///checkbox.php
$totle=$_POST;
for($i=0;$i<$totle;$i++){
$uid=$_POST[uid.$i];
if($uid!=""){
$said=$_POST[sale.$i];
$sid=$_POST[sales.$i];
echo $said.'|'.$sid;
}
}
[ 此帖被zhengnz在2010-01-13 18:40重新编辑 ]
作者: zhengnz 发布时间: 2010-01-13
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28