0

我有 2 个文本框,一个用于最大分数,另一个用于获得的分数。在第二个框中输入的值必须限制为小于或等于最大分数。只有数字必须被输入到那些框中..

Maximum Marks<input type=text name=maxmarks maxlength='2' >
Obtained marks<input type='text' maxlength='2' name='obtmarks'>

请帮帮我..提前谢谢你..

4

3 回答 3

0

好吧,如果您想在客户端执行此操作,则必须使用 Javascript。如果您想在服务器端执行此操作,如果第二个数字超过第一个,为什么不将错误消息发送回页面。如果您可以使用 HTML5 输入选项,您可能还想查看它。这些将自动进行号码验证。

于 2012-09-21T19:02:31.767 回答
0

你可以试试这样的...

   $response_array = array();

   if($obtained > $max){
       $response_array['status'] = 'error';
       $response_array['message'] = '<div class="alert alert-error">Obtained to big</div>';

   }
   if(!is_numeric($obtained){
       $response_array['status'] = 'error';
       $response_array['message'] = '<div class="alert alert-error">Obtained not a number</div>';
   }
   echo json_encode($response_array);

这是伪代码,显然您需要根据您的目的对其进行调整。

于 2012-09-21T19:14:41.780 回答
0

首先,您必须在提交表单的 php 脚本中进行检查,之后您可以使用 javascript 以使其更加用户友好,但如果有人更改源代码或只是关闭 javascript,他将能够提交任何内容。在您的 process_form.php 中:

    session_start();
    $errors = array();
    if (!isset($_POST['maxmarks']) || empty($_POST['maxmarks'])) {
         $errors[] = 'The Maximum Marks field is required.';
    }
    else {
        if (!is_int($_POST['maxmarks'])) {
            $errors[] = 'The Maximum Marks field must be an integer.';
        }
        else {
           $maxmarks= (int) trim($_POST['maxmarks']);
        }
    }

    if (!isset($_POST['obtmarks']) || empty($_POST['obtmarks'])) {
         $errors[] = 'The Obtained Marks field is required.';
    }
    else {
        if (!is_int($_POST['obtmarks'])) {
            $errors[] = 'The Obtained Marks field must be an integer.';
        }
        else {
           $obtmarks= (int) trim($_POST['obtmarks']);
        }
    }

    if (!empty($errors)) {
        $_SESSION['form_errors'] = $errors;
        header('Location: your_form.php');
        die();
    }
    else if ($obtmarks > $maxmarks){
        $errors[] = 'The Obtained Marks must be less or equal to Maximum Marks.';
        $_SESSION['form_errors'] = $errors;
        header('Location: your_form.php');
        die();
    }
    else {
        //process data
    }

现在在 your_form.php 中:

   session_start();
   if (isset($_SESSION['form_errors']) && !empty($_SESSION['form_errors'])) {
       $errors = $_SESSION['form_errors'];
       unset($_SESSION['form_errors']);
   }

   echo '<ul>';
   if (isset($errors)) {
       foreach($errors as $error) {
           echo '<li>' . $error . '</li>';
       }
   }
   echo '</ul>';
   //your form here
于 2012-09-21T19:19:06.067 回答