可以验证date[]数组,但不能处理它


Can validate an array of date[] but not process it?

我现在有一个问题,在我的mydate结束时,我已经把[],所以我可以有一个数组来处理,在另一页上,我有process.php.

在process。php中,我有
foreach($_POST["mydate"] as $mydate ){     
        if($mydate != ''){
         Date processed...etc etc....
   }

如果我把[],它将存储它,但不会验证,如果我不把[],它将验证,但不发布?

任何想法吗?

<script type="text/javascript">
        function checkdate(input){
    var validformat=/^'d{2}'/'d{2}'/'d{4}$/ //Basic check for format validity
    var returnval=false
    if (!validformat.test(input.value))
    alert("Invalid Date Format. Please correct and submit again.")
    else{ //Detailed check for valid date ranges
    var monthfield=input.value.split("/")[0]
    var dayfield=input.value.split("/")[1]
    var yearfield=input.value.split("/")[2]
    var dayobj = new Date(yearfield, monthfield-1, dayfield)
    if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield))
    alert("Invalid Day, Month, or Year range detected. Please correct and submit again.")
    else
    returnval=true
    }
    if (returnval==false) input.select()
    return returnval
    }
    function CheckDates(inputs)
{
    var i, len;
    if (inputs.length) {
        len = inputs.length;
        for (i = 0; i < len; i++) {
            if (!checkdate(inputs[i])) return false;
        }
        return true;
    }
    return checkdate(inputs);
}
    function add(tbl1) {
        var tbl = document.getElementById(tbl1);
        var rowCount = tbl.rows.length;
        var row = tbl.insertRow(rowCount);
        var colCount = tbl.rows[1].cells.length;
        for(var i=0; i<colCount; i++) {
            var newCell = row.insertCell(i);
            newCell.innerHTML = tbl.rows[1].cells[i].innerHTML;
        }
    }
    </script>
    <form name "enter" action="enter.php" onSubmit="return Checkdate(this.mydate)" method="post">
    <table id="day" border="1">
    <tr><b>Valid date format:</b><br></tr>
    <tr><td>
    <input type="text" name="mydate" />
    </table><br>
    <input type="submit" value="submit" />
    <input type="button" value="Add Row" onclick="add('day')"/>
    </form>

编辑删除了空格,但仍然不起作用

如果有多个输入字段,名称必须是mydate[],因此它们被放置在一个数组中,并且在您的处理代码中有一个额外的空间…$_POST['mydate ']不行,必须是$_POST['mydate']

编辑:这一行<input type="text" name="mydate" />必须是<input type="text" name="mydate[]" />

试试这个构造:

foreach ($_POST["mydate"] as $mydate ) {     
    if(!empty($mydate) && !is_null($mydate)) {
    }
}