Php 修改提交按钮以识别选择的数量

Php 修改提交按钮以识别选择的数量,php,jquery,Php,Jquery,我正在进行一系列数据库驱动的测试,这些测试显示在mysite/test/$testurl上。用户选择答案并单击submit按钮后,答案将转发到mysite/test/grade.php <div id="quiz" rel="key" style="margin-top: 50px;"> <form action="grade.php" method="post" id="quiz"> <ol> <li style="displa

我正在进行一系列数据库驱动的测试,这些测试显示在mysite/test/$testurl上。用户选择答案并单击submit按钮后,答案将转发到mysite/test/grade.php

<div id="quiz" rel="key" style="margin-top: 50px;">
  <form action="grade.php" method="post" id="quiz">
    <ol>
      <li style="display: none;">
<?php echo join ($Base, ''); ?>
      </li>
    </ol>
    <input type="hidden" name="PreviousURL" value="<?php echo $MyURL; ?>" id="url" />
    <input type="hidden" name="user_token" value="<?php echo isset($_POST['user_token']) ? $_POST['user_token'] : '' ; ?>" />
    <input type="submit" value="Submit Quiz" />
  </form>
</div>
下面的脚本捕获测试页面的URL,以便在grade.php上显示正确的答案

<div id="quiz" rel="key" style="margin-top: 50px;">
  <form action="grade.php" method="post" id="quiz">
    <ol>
      <li style="display: none;">
<?php echo join ($Base, ''); ?>
      </li>
    </ol>
    <input type="hidden" name="PreviousURL" value="<?php echo $MyURL; ?>" id="url" />
    <input type="hidden" name="user_token" value="<?php echo isset($_POST['user_token']) ? $_POST['user_token'] : '' ; ?>" />
    <input type="submit" value="Submit Quiz" />
  </form>
</div>


  • 检查$u POST是否具有您在测试中要求的值(并且它们不是空的)。如果是这样,您可以显示smth,比如“请在测试之前回答测试”,或者通过标题函数重定向到test.php。

    检查$\u POST是否包含您在测试中询问的值(并且它们不是空的)。如果是这样,那么您可以显示smth,比如“请在之前回答测试”,或者通过标题函数重定向到test.php。

    您可以在所有答案之间进行循环,如果其中一个答案为空,则不显示任何内容

    假设你有3个问题

    $_POST['Question1']
    $_POST['Question2']
    $_POST['Question3']
    
    如果你这样做:

    if(!$_POST['Question1'] || !$_POST['Question2'] || !$_POST['Question3']){
    
       // SHOW NOTHING
    }
    else{
       // SHOW WHAT YOU WANT.
    }
    
    现在,如果您想在JQUERY中执行此操作。如果已经给出了所有答案,您可以通过在之前检查来防止表单加载到php中

    在这里,您使用相同的方法,然后遍历数组中的每个答案,例如:

    $('#myform').submit(function(event){
      var answers = $('#myform').serializeArray();
      $.each(answers , function(index,value){
         if(value == ''){
           event.preventDefault();
           alert('you did not answer all the questions');
         }
    
       });
    }
    

    你在所有答案之间做一个循环,如果其中一个是空的,你就什么都不显示

    假设你有3个问题

    $_POST['Question1']
    $_POST['Question2']
    $_POST['Question3']
    
    如果你这样做:

    if(!$_POST['Question1'] || !$_POST['Question2'] || !$_POST['Question3']){
    
       // SHOW NOTHING
    }
    else{
       // SHOW WHAT YOU WANT.
    }
    
    现在,如果您想在JQUERY中执行此操作。如果已经给出了所有答案,您可以通过在之前检查来防止表单加载到php中

    在这里,您使用相同的方法,然后遍历数组中的每个答案,例如:

    $('#myform').submit(function(event){
      var answers = $('#myform').serializeArray();
      $.each(answers , function(index,value){
         if(value == ''){
           event.preventDefault();
           alert('you did not answer all the questions');
         }
    
       });
    }
    

    哦,这是有道理的。如果用户根本没有回答任何问题,$\u POST应该是空的,对吗?所以,如果他们回答了至少一个问题,它应该有一个值。但是我怎样才能修改它,让他们回答所有的问题呢?我的大多数测试都会有10或25个问题。有没有一种方法可以让我简单地数一数答案来确定他们是否回答了每个问题?我不会像“如果(!$发帖['Question1']|!$发帖['Question2']|!$发帖['Question3'])那样做smth或者用!empty()(!empty($发帖['Question1'],$发帖['Question2'],$发帖['Question3'])来检查所有问题]…)为什么更好?我很感兴趣,因为我总是使用!$myvariablebecause。查看sirlancelotI忘记添加的答案:链接中没有什么:如果您使用!在尚未创建的变量上,php抛出一个通知(例如:“php通知:未定义的变量:第2行中的变量”)这也不好哦,这是有道理的。如果用户根本没有回答任何问题,$\u POST应该是空的,对吗?所以如果他们回答了至少一个问题,它应该有一个值。但是我如何修改它,让他们回答所有问题呢?我的大多数测试都会有10或25个问题。有没有办法简单地计算答案to确定他们是否回答了每个问题?我不会像“如果(!$发布['Question1'].$发布['Question2'.]发布['Question2'.]发布['Question3']){”这样做smth或者用!empty()!empty($发布['Question1'.]发布['Question2'.]发布['Question3'])检查所有内容($empty($发布['Question1'])…)为什么更好?我很感兴趣,因为我总是使用!$myvariablebecause。查看sirlancelotI忘记添加的答案:链接中没有什么:如果您使用!在尚未创建的变量上,php抛出一个通知(例如:“php通知:未定义的变量:第2行中的变量”)这也是不好的,即使你使用JS,你也应该在PHP中进行检查。如果一个WebAvvy用户阅读了页面的源代码,他们可以重定向自己,而不用担心你讨厌的JS检查。好提示。这些不是真正的“关键”简历所需的测试,等等;如果一个人想作弊,他们只是在欺骗自己。不过,让它尽可能可靠还是不错的。即使你用JS做,你也应该在PHP中做检查。如果一个WebAvvy用户阅读页面的源代码,他们可以重定向自己,而不用担心你讨厌的JS检查。好提示。这些并不是简历等所需的真正“关键”测试;如果一个人想作弊,他们只是在欺骗自己。不过,让它尽可能可靠还是不错的。