首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML表单编号类型使用Javascript和PHP的唯一用户输入

HTML表单编号类型使用Javascript和PHP的唯一用户输入
EN

Stack Overflow用户
提问于 2015-08-11 05:03:16
回答 1查看 358关注 0票数 2

这个问题是我之前问的(HTML Form Number Type Unique User Input)的后续问题,但现在我使表单更具动态性。

下面的表格要求用户列出三种最喜欢的音乐流派:

代码语言:javascript
复制
<form id="genre" name="genre" method="post" action="musicsell.php">
  <input type="checkbox" name="genre[]" id="Rap" value="Rap"/>Rap<br />
  <input type="checkbox" name="genre[]" id="HipHop" value="HipHop"/>HipHop<br />
  <input type="checkbox" name="genre[]" id="RnB" value="RnB"/>RnB<br />
  <input type="checkbox" name="genre[]" id="Rock" value="Rock"/>Rock<br />
  <input type="checkbox" name="genre[]" id="Jazz"value="Jazz"/>Jazz<br />

  <p>
    <input type="submit" value="Next">
    <br />
  </p>
 </form>

从那里开始,我使用以下代码来确保它们只使用数字1、2和3以及foreach循环来列出它们检查过的内容,但是如何确保它们不会使用相同的数字两次呢?

代码语言:javascript
复制
<body>
 The genre(s) you selected are: <br />
 <form id="form1" name="form1" method="post" action="musicresults.php">
  <?php
   $name = $_POST['genre'];

   if(isset($_POST['genre'])) {
    foreach ($name as $genre) {  
     ?>

     <input type="number" required="required" id="<?php echo $genre ?>" name="music[<?php echo $genre ?>]" max="3" min="1" />
     <?php echo $genre ?>
     <br /> 

     <?php
    }
   }
  ?>

  <input type="submit" name="button" id="button" value="Submit" />
 </form>
</body>

这是上一个问题中的旧javascript代码,但现在id="“是由上面的PHP生成的:

代码语言:javascript
复制
 <script type="text/javascript">
    function item() {
        cake = Number(document.getElementById('cake').value);
        twizlers = Number(document.getElementById('twizlers').value);
        taffy = Number(document.getElementById('taffy').value);
        if (cake == twizlers) {
           alert("Some alert cake or twizlers");
        return false;
    } else if (twizlers == taffy) {
        alert("Some alert taffy or twizlers");
        return false;
    } else if (taffy == cake) {
        alert("Some alert taffy or cake");
        return false;
    } else {
        return true;
    }
  }
 </script>

现在如何做到这一点呢?它一定要在foreach循环中吗?任何建议都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2015-08-11 05:07:05

除非他们修改表单或构建自己的帖子提交,否则他们不能“使用”相同的复选框两次。但是您可以很容易地检查重复的值:

代码语言:javascript
复制
$counts = array_count_values(array_values($_POST['genre']));
foreach($counts as $form_value => $cnt) { 
    if ($cnt > 1) { 
        echo "$form_value was entered more than once";
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31929122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档