php +js 中多选项(复选)框的检测

在php中,想获得复选框的值,需要将复选框的name命名称数组的形式。

然后在$_GET["multiplayname"] 或 $_PUT["multiplayname"]获得其数值,但是如何判断用户是否选中其中的标单了,多选项目必须选择一项,否则不能提交表单!

在网上找了半天的资料,基本上是对多选框的name处理成数组,然后检测其checked值是否选中。如下:

var ch="";
for(var i=0; i<document.forms.check.length;i++)
{
if(document.forms.check[i].checked)
ch=ch+document.forms.check[i].value;
}
if(ch=="")
{
alert("请选择您需要删除的项!");
return false;
}

但是实际使用中Php已经将checkbox的name命名成数组形式了[],在调用这个就失败了!

所以我想到了一个折中的办法!

就是使用document.getElementById("id")来获得其值,而且思想也是类似于数组[手动数组],如下:

JS:

function checkspace(checkstr) {
  var str = '';
  for(i = 0; i < checkstr.length; i++) {
   str = str + ' ';
  }
  return (str == checkstr);
 }
 <INPUT name="functionsub[]" type=checkbox id="functionsub3" value=会员注册系统>
                                          会员注册系统 </TD>
                                        <TD><INPUT name="functionsub[]" type=checkbox id="functionsub4" value=信息检索系统>
                                          信息检索系统 </TD>
                                        <TD><INPUT name="functionsub[]" type=checkbox id="functionsub5" value=社区论坛系统>
                                          社区论坛系统 </TD>
                                      </TR>
                                      <TR>
                                        <TD><INPUT name="functionsub[]" type=checkbox id="functionsub6" value=客户反馈系统>
                                          客户反馈系统 </TD>
                                        <TD><INPUT name="functionsub[]" type=checkbox id="functionsub7" value=链接管理系统>
                                          链接管理系统 </TD>
                                        <TD><INPUT name="functionsub[]" type=checkbox id="functionsub8" value=下载系统>
                                          下载系统 </TD>
                                      </TR>
                                      <TR>
                                        <TD><INPUT name="functionsub[]" type=checkbox id="functionsub9" value=在线询价系统>
                                          在线询价系统 </TD>
                                        <TD><INPUT name="functionsub[]" type=checkbox id="functionsub10" value=在线招聘系统>
                                          在线招聘系统 </TD>
                                        <TD><input name="functionsub[]" type=checkbox id="functionsub11" value=流量统计系统>
                                          流量统计系统

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用 JavaScript 和 AJAX 技术实现这个功能。具体实现步骤如下: 1. 使用 AJAX 技术从后台获取 zz 人数和 zy 人数。 2. 根据获取到的数据生成相应的组长和组员单选以及分类复选。 3. 为组长和组员单选以及分类复选添加事件监听器。 4. 根据选择的组长数和组员数,生成相应的内容。 代码示例: ```html <!DOCTYPE html> <html> <head> <title>动态网页</title> <script type="text/javascript"> function getZzZyNum() { // 创建一个 AJAX 对象 var xhr = new XMLHttpRequest(); // 设置 AJAX 请求的参数 xhr.open("GET", "get_zz_zy_num.php", true); // 设置 AJAX 请求完成后的回调函数 xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { // 获取从后台返回的数据 var data = JSON.parse(xhr.responseText); // 生成组长和组员单选以及分类复选 var leaderRadioHtml = ""; var memberRadioHtml = ""; for (var i = 0; i < data.zzNum; i++) { leaderRadioHtml += "<input type=\"radio\" name=\"leader\" value=\"" + (i + 1) + "\"> 组长" + (i + 1); } for (var j = 0; j < data.zyNum; j++) { memberRadioHtml += "<input type=\"radio\" name=\"member\" value=\"" + (j + 1) + "\"> 组员" + (j + 1); } document.getElementById("leaderRadio").innerHTML = leaderRadioHtml; document.getElementById("memberRadio").innerHTML = memberRadioHtml; // 为组长和组员单选以及分类复选添加事件监听器 var radios = document.getElementsByTagName("input"); for (var k = 0; k < radios.length; k++) { radios[k].addEventListener("change", generateContent); } var checkboxes = document.getElementsByTagName("input"); for (var l = 0; l < checkboxes.length; l++) { checkboxes[l].addEventListener("change", generateContent); } } }; // 发送 AJAX 请求 xhr.send(); } function generateContent() { // 获取选择的组长数和组员数 var leaderNum = parseInt(document.querySelector('input[name="leader"]:checked').value); var memberNums = []; var checkboxes = document.querySelectorAll('input[name="category"]:checked'); for (var i = 0; i < checkboxes.length; i++) { memberNums.push(parseInt(checkboxes[i].value)); } // 生成相应的内容 var leaderContent = ""; for (var j = 0; j < leaderNum; j++) { leaderContent += "<div>组长" + (j + 1) + "的内容</div>"; } var memberContent = ""; for (var k = 0; k < memberNums.length; k++) { for (var l = 0; l < memberNums[k]; l++) { memberContent += "<div>分类" + (k + 1) + "的组员" + (l + 1) + "的内容</div>"; } } // 显示相应的内容 document.getElementById("leaderContent").innerHTML = leaderContent; document.getElementById("memberContent").innerHTML = memberContent; } </script> </head> <body onload="getZzZyNum()"> <div id="leaderRadio"></div> <div id="memberCheckbox"> <label for="category1">分类1</label> <input type="checkbox" id="category1" name="category" value="3"> <label for="category2">分类2</label> <input type="checkbox" id="category2" name="category" value="4"> <label for="category3">分类3</label> <input type="checkbox" id="category3" name="category" value="5"> </div> <div> <button type="button" onclick="generateContent()">生成内容</button> </div> <div id="leaderContent"></div> <div id="memberContent"></div> </body> </html> ``` 在这个示例中,我们使用 AJAX 技术从后台获取 zz 人数和 zy 人数,并根据这些数据生成相应的组长和组员单选以及分类复选。然后,我们为这些单选复选添加事件监听器,在用户选择不同的选项,动态生成相应的内容。你可以根据自己的需求修改代码,并将其用于你的动态网页中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值