用JavaScript显示复选框的结果

Show result from checkbox with JavaScript

本文关键字:结果 复选框 显示 JavaScript      更新时间:2023-09-26

我想用javascript显示我的复选框的结果我需要用php

把它发送到数据库

每个复选框都有一列

如果复选框被选中,我将变量插入到我的数据库

HTML代码和javascript

var checks = document.getElementsByClassName('justtest');
          var str = '';
          for( i=0; i<3; i++){
              if(checks[i].checked === true){
                str += checks[i].value + " ";
              }
            }
alert(str);
<div class="form-group">
   <div class="col-md-3">
      <div class="checkbox">
         <label>
<input type="checkbox" value="test1" class="justtest" > Test1
         </label>
       </div>
      </div>
     </div>
    <div class="form-group">
    <div class="col-md-3">
     <div class="checkbox">
       <label>
 <input type="checkbox" value="test2" class="justtest"> test2
       </label>
      </div>
     </div>
    </div>
     <div class="form-group">
      <div class="col-md-3">
       <div class="checkbox">
         <label>
<input type="checkbox" value="test3" class="justtest"> test3
          </label>
         </div>
       </div>
      </div>

我试着这样做,但没有任何结果

var checks = document.getElementsByClassName('justtest');
          var str = checks.length;
          for( i=0; i<3; i++){
              if(checks[i].checked === true){
                str[i]= checks[i].value;
              }
            }
alert(str[0]);
alert(str[1]);
alert(str[2]);

对您的代码进行了少量更改,str是一个结果数组,并添加了一个按钮,该按钮将执行检查功能,因为现在脚本只执行一次,然后您甚至可以更改选择任何选项

var getValues = function () {
var str = [];
var checks = document.getElementsByClassName('justtest');
          for(var i=0; i<checks.length; i++){
              if(checks[i].checked){
                str.push( checks[i].value );
              } 
            }
  
  for( var x = 0; x < str.length; x++){
    alert (str[x]);
    }
  
  }
<div class="form-group">
   <div class="col-md-3">
      <div class="checkbox">
         <label>
<input type="checkbox" value="test1" class="justtest" > Test1
         </label>
       </div>
      </div>
     </div>
    <div class="form-group">
    <div class="col-md-3">
     <div class="checkbox">
       <label>
 <input type="checkbox" value="test2" class="justtest"> test2
       </label>
      </div>
     </div>
    </div>
     <div class="form-group">
      <div class="col-md-3">
       <div class="checkbox">
         <label>
<input type="checkbox" value="test3" class="justtest"> test3
          </label>
         </div>
        <button onclick="getValues()">Check</button>
       </div>
      </div>

可以从HTML的角度来处理这个问题,在那里你给所有的复选框相同的输入名称(并在它之后使用[]),然后让表单的post把它带到你的php,你的php会把它看作数组,从javascript结束你也得到值。

首先让我给你们看一下它的HTML版本

你的每个输入字段应该像这样

  <input type="checkbox" name="justtest[]" value="owk 1">,
  <input type="checkbox" name="justtest[]" value="owk 2">

注释 justtest[]命名

当你做form post时,你可以使用你喜欢的任何循环如

foreach ($_POST["justtest"] as $key => $value) {
 echo $value;
 }

而从javascript像你所做的上面Marcin C在本页的回答仍然

如果不满意,这里有另一种javascript方法可能也会有所帮助(运行代码片段来查看它的作用)

function getInput(){
  var values = [];
  var inputs = document.getElementsByName("justtest[]");
  for (var i = 0; i <inputs.length; i++) {
    var inp=inputs[i];
    if(inp.checked){
     values.push(inp.value);
      }
  //alert("justtest["+i+"].value="+inp.value); this returns all with their value , we check for only checked ones
      }
 alert (values); //alert our values here
  }
<input type="checkbox" name="justtest[]" value="owk 1">
<input type="checkbox" name="justtest[]" value="owk 2">
<input type="checkbox" name="justtest[]" value="owk 3">
<input type="checkbox" name="justtest[]" value="owk 4">
<button onclick="getInput()">Get Input<button>

是否在文档的头部添加了脚本标签?如果是这样,该代码将总是失败,因为文档将没有初始化复选框以能够检索它们。

尝试将脚本移动到页面底部(刚好在结束body标签上方)