基于下拉列表值的php必填字段

时间:2012-02-14 10:45:33

标签: php

我在PHP中有一个表单,它有下拉列表和一个textboxt,它显示和隐藏下拉列表值的基础。我做了这个节目并使用javascript隐藏。

我的问题是,如果文本框变得可见,我想强制显示该文本框,如果用户将文本框留空,则会出现错误。

我使用preg_match进行了表单验证,但是如何根据下拉列表选择的值执行条件强制执行?

修改

这是我在js中的show / hide feild

<script type="text/javascript">
function showfield(name){
    if(name != 'High School')
        document.getElementById('div1').style.display="block";
    else
        document.getElementById('div1').style.display="none";
}

function hidefield() {
    document.getElementById('div1').style.display='none';
}
</script>

这是我的php验证

if(preg_match("/^[A-Z][a-zA-Z ]+$|\p{Arabic}/u", $_POST["name"]) === 0)
    $errname = '<p class="errText">Please enter your full name </p>';' 

2 个答案:

答案 0 :(得分:1)

PHP中缺少的是检查下拉值。在您的HTML中,您有一个名称为 name 的文本字段,您正在检查它,但您也有一个select元素 - 我不知道名称。在PHP检查名称为空时,首先检查下拉列表设置的值。所以它会像

if($_POST['dropdown'] != 'highschool' &&
   preg_match("/^[A-Z][a-zA-Z ]+$|\p{Arabic}/u", $_POST["name"]) === 0)
{
    $errname = '<p class="errText">Please enter your full name </p>';
}

答案 1 :(得分:0)

最好提出一个javascript客户端脚本。

提交调用javascript函数validate()

<form name="xxx" method="get" onsubmit="validate()">

在javascript函数validate(),

<script type="text/javascript">
     function validate(){

     var schoolname=document.getElementById("schoolName");

     var yearofpassing=document.getElementById("yop");

     if(isEmpty(schoolname)){

        alert("schoolname is mandatory");

        document.getElementById("schoolname").value="Please Enter School Name";

        document.getElementById("schoolname").focus();

        return false;
        } // Similarly Give Validation for Year of Passing field

此外,如果您需要文本字段中的特定模式,请使用Javascript match()函数Click Here作为参考&amp;使用

     return true;
     }

</script>

身体部位

<body>
<form name="input" action="processinput.php" method="get">
<div id="div1">
   School Name :<input type="text" id="schoolname"> <br>
   Year of Passing : <input type="text" id="yop"><br>
</div>
<div id="div2">
   CODE
<div>
</form>
</body>