Может проверить массив даты [], но не обработать его? - PullRequest
0 голосов
/ 28 ноября 2011

У меня проблема с этим сейчас, в конце моего 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>

РЕДАКТИРОВАЛ убрал пробел, но все равно не работает

Ответы [ 2 ]

2 голосов
/ 28 ноября 2011

Если имеется более одного поля ввода, имя должно быть mydate[], поэтому они помещаются в массив, и в вашем коде обработки у вас есть дополнительный пробел ... $_POST['mydate '] не будет работатьдолжно быть $_POST['mydate']

редактировать: эта строка <input type="text" name="mydate" /> должна быть <input type="text" name="mydate[]" />

1 голос
/ 28 ноября 2011

Попробуйте эту конструкцию:

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

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...