这是前台页面,其中“所在部门”和“副职姓名”是jquery从另一个页面get的数据,返回的就是下面的checkbox。我试了一下,从这个页面用js好像找不到这些checkbox,所以只有用php来做了,但是做不出来,下面是部分代码:user是checkbox的name。
$user=$_POST['user'];
$arr=array();
$darr=array();
$darr= array_diff($arr,$user);
if(!empty($user)){
for($i=0;$i
//echo "<script>alert('dfh')</script>";
$db->query("update members set fuchu='".$_POST['fuchu']."' where uid='".$user[$i]."'");
}
}
if(!empty($darr)){
for($j=0;$j<=count($darr);$j++){
$rowf=$db->get_one("select * from members where fuchu=".$_POST['fuchu']);
if($darr[$j]==$rowf['uid'])
unset($darr[$j]);
else
$db->query("update members set fuchu='0' where uid='".$darr[$j]."'");
}
}
我是用的array_diff方法,将选中的和没选中的checkbox区分开来。但是我试了好多遍,主要问题是$_POST['user']返回的是点击的数据,无论是否选中,这样的话如果原来是选中的,我想取消选中的话就做不到,如何能挑出取消选中的数据?
回复讨论(解决方案)
请贴出 html 代码,以甄别数据是以何种方式提交的
或者你 print_r($_POST); 贴出结果
请贴出 html 代码,以甄别数据是以何种方式提交的
或者你 print_r($_POST); 贴出结果
print_r($_POST); 显示的结果是两个select的值,没什么用。
Array ( [depart] => 2 [fuchu] => 112 [submit] => 提交 )
这是获取checkbox的jquery代码
//city onchange
$('#fuchu').change(function() {
var city = $(this).val();
var province=$("#depart").val();
$.get("getdepart.php", {category:'user', city:city,province:province}, function(data) {
$('#result').html(data);
//alert (data);
});
});
这是html代码
if($_REQUEST["city"]!=""){
$sql="select * from members left join userclass on members.flag=userclass.flagid where admitright=4 and groupid=".$_REQUEST['province'];
$result=$db->query($sql);
$str="";
if ($db->num_rows($result) > 0) {
while ($row =$db->fetch_array($result)) {
if($row['fuchu']==$_REQUEST['city']){
$str.= $row['username'];
$str.= " ";
}else{
$str.= $row['username'];
$str.= " ";
}
}
}
mysql_free_result($result);
}
提交的数据 Array ( [depart] => 2 [fuchu] => 112 [submit] => 提交 ) 中并没有 user 项
没有被提交,那自然也就无法处理
#2 下半部只是 php 生成复选框串的代码,并不表示复选框就一定放进表单里去了
提交的数据 Array ( [depart] => 2 [fuchu] => 112 [submit] => 提交 ) 中并没有 user 项
没有被提交,那自然也就无法处理
#2 下半部只是 php 生成复选框串的代码,并不表示复选框就一定放进表单里去了
那为什么print_r($user)和print_r($darr)有数据?
提交的数据 Array ( [depart] => 2 [fuchu] => 112 [submit] => 提交 ) 中并没有 user 项
没有被提交,那自然也就无法处理
#2 下半部只是 php 生成复选框串的代码,并不表示复选框就一定放进表单里去了
那这样的页面形式用什么办法更合适一些?
你是这样使用提交的数据的:$user=$_POST['user'];
如果 print_r($_POST); 只显示 Array ( [depart] => 2 [fuchu] => 112 [submit] => 提交 )
你怎么去用 $user ???
你是这样使用提交的数据的:$user=$_POST['user'];
如果 print_r($_POST); 只显示 Array ( [depart] => 2 [fuchu] => 112 [submit] => 提交 )
你怎么去用 $user ???
我这段代码是在if(isset($_POST['user'])中的,里面的代码可以运行
你是这样使用提交的数据的:$user=$_POST['user'];
如果 print_r($_POST); 只显示 Array ( [depart] => 2 [fuchu] => 112 [submit] => 提交 )
你怎么去用 $user ???
知道了,只有选中checkbox之后才有内容:
Array ( [1] => 117 ) Array ( [depart] => 2 [fuchu] => 112 [user] => Array ( [0] => 124 ) [submit] => 提交 )
你是这样使用提交的数据的:$user=$_POST['user'];
如果 print_r($_POST); 只显示 Array ( [depart] => 2 [fuchu] => 112 [submit] => 提交 )
你怎么去用 $user ???
现在的问题是取消选中没反应?
复选框没有选中,是不会提交的
也就是说,$_POST['user'] 是否有值是要分别处理的
复选框没有选中,是不会提交的
也就是说,$_POST['user'] 是否有值是要分别处理的
但是我用array_diff语句处理后的结果并不是我想要的,不知道哪里出错了,帮忙看看,谢谢了
你是说 $darr= array_diff($arr,$user); 这个?
你的 $arr 是一个空数组,不管 $user 数组中有多少元素
$darr 都是空数组,不知道你要这样做的原因
你是说 $darr= array_diff($arr,$user); 这个?
你的 $arr 是一个空数组,不管 $user 数组中有多少元素
$darr 都是空数组,不知道你要这样做的原因
我换了种方式,把checkbox写到前台,不从后台get了,现在又遇到点问题:
$("#btnSubmit").bind("click", function () {
var result = new Array();
$("[name = user]:checkbox").each(function () {
if ($(this).is(":checked")) {
result.push($(this).attr("value"));
}
});
$("#hdtxt").val(result.join(","));
var userid=;
$("#hdfuchu").val(userid);
//alert($("#hdtxt").val());
alert(userid);
});
一加上红字这段select就没反应了,删除掉就可以,这是为什么?我在上面echo $userid,可以看到是有值的。而如果把$userid换成一个数字就可以运行,咋回事?
你是说 $darr= array_diff($arr,$user); 这个?
你的 $arr 是一个空数组,不管 $user 数组中有多少元素
$darr 都是空数组,不知道你要这样做的原因
帮忙看看呗,这个项目的最后一点问题了
换一种方式解决了,但是还是不明白为什么$_GET来的变量无法赋值到jquery中。

PHP和Python各有优势,选择应基于项目需求。1.PHP适合web开发,语法简单,执行效率高。2.Python适用于数据科学和机器学习,语法简洁,库丰富。

PHP不是在消亡,而是在不断适应和进化。1)PHP从1994年起经历多次版本迭代,适应新技术趋势。2)目前广泛应用于电子商务、内容管理系统等领域。3)PHP8引入JIT编译器等功能,提升性能和现代化。4)使用OPcache和遵循PSR-12标准可优化性能和代码质量。

PHP的未来将通过适应新技术趋势和引入创新特性来实现:1)适应云计算、容器化和微服务架构,支持Docker和Kubernetes;2)引入JIT编译器和枚举类型,提升性能和数据处理效率;3)持续优化性能和推广最佳实践。

在PHP中,trait适用于需要方法复用但不适合使用继承的情况。1)trait允许在类中复用方法,避免多重继承复杂性。2)使用trait时需注意方法冲突,可通过insteadof和as关键字解决。3)应避免过度使用trait,保持其单一职责,以优化性能和提高代码可维护性。

依赖注入容器(DIC)是一种管理和提供对象依赖关系的工具,用于PHP项目中。DIC的主要好处包括:1.解耦,使组件独立,代码易维护和测试;2.灵活性,易替换或修改依赖关系;3.可测试性,方便注入mock对象进行单元测试。

SplFixedArray在PHP中是一种固定大小的数组,适用于需要高性能和低内存使用量的场景。1)它在创建时需指定大小,避免动态调整带来的开销。2)基于C语言数组,直接操作内存,访问速度快。3)适合大规模数据处理和内存敏感环境,但需谨慎使用,因其大小固定。

PHP通过$\_FILES变量处理文件上传,确保安全性的方法包括:1.检查上传错误,2.验证文件类型和大小,3.防止文件覆盖,4.移动文件到永久存储位置。

JavaScript中处理空值可以使用NullCoalescingOperator(??)和NullCoalescingAssignmentOperator(??=)。1.??返回第一个非null或非undefined的操作数。2.??=将变量赋值为右操作数的值,但前提是该变量为null或undefined。这些操作符简化了代码逻辑,提高了可读性和性能。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。