如何根据php中前一个输入的值限制在文本框中输入的值

时间:2012-09-21 19:00:45

标签: php html

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

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

请帮我这个..提前谢谢..

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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);

这是伪代码,显然你需要为你的目的调整它。

答案 2 :(得分: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