将Jquerys的日期选择器提交到mysql时遇到问题


Having trouble submitting Jquerys datepicker into mysql

在我使用datepicker之前,当我手动将日期写入输入字段时,它就起了作用,如下所示:2016-01-10。但当我切换到datepicker时,由于某种原因,数据没有提交。

我的html表单:

     <form class="w3-container">
            <p>
            <label>Titel:</label>
            <input class="w3-input" type="text" id="eTitel"></p>
            <p>
            <label>Description:</label>
            <input class="w3-input" type="text" id="eDesc"></p>
            <p>
            <label>From:</label>
            <input class="w3-input" type="text" id="datepicker1" name="datepicker1"></p>
            <p>
            <label>To:</label>
            <input class="w3-input" type="text" id="datepicker2" name="datepicker2"></p>
            <br>
            <input type="button" id="button2" value="add+">
         </form>

我的php代码:

 <php
       if(isset($_POST["titel"]) && strlen($_POST["titel"])> 0 &&  isset($_POST["descritption"]) && strlen($_POST["descritption"])> 0 && isset($_POST["date"]) && strlen($_POST["date"])> 0 && isset($_POST["todate"]) && strlen($_POST["todate"])> 0){
         $u_id = 1;
        $titel = $_POST["titel"];
         $descritption = $_POST["descritption"];
        $date = $_POST["date"];
       $todate = $_POST["todate"];

        $postInsert2 = $link-> query("INSERT INTO Experiences (u_id, titel, descritption, date, todate) VALUES ('$u_id','$titel','$descritption','$date','$todate' )");
           if($postInsert2){
               echo "succefully inserted into Experiences";
               $link->close();
           }
  }
 ?>

我的javascript代码是:

    <script>
$(function() { $( "#datepicker1" ).datepicker({
    dateFormat: 'yy-mm-dd',

    });
     $("#datepicker1").on("change",function(){
     date = $(this).val();
    alert(date);
});
});
$(function() {
  $( "#datepicker2" ).datepicker({
    dateFormat: 'yy-mm-dd',
    });
     $("#datepicker2").on("change",function(){
     todate = $(this).val();
    alert(todate);
  });
});
     $("#button2").click(function(){
     var titel = $("#eTitel").val();
     var descritption = $("#eDesc").val();
    var date = $('input[name=datepicker1]');
    var todate = $('input[name=datepicker2]');
     if(titel == " " && descritption == " " && date == " " && todate == " ")
     {
         alert("values are missing");
     }
     else{
         $.ajax({
             type:"POST",
             url: "olle.php",
             data:{
                titel: titel,
                descritption: descritption,
                date: date,
                todate: todate,
             },
             success: function (msg){
                 $("#eTitel").val("");
                 $("#eDesc").val("");
                 $("#datepicker1").val("");
                 $("#datepicker2").val("");
             },
             error: function(){
                 alert("error didnt insert");
             }
         });
     }
 });

    </script> 

由于手动将日期值设置为yyyy-mm-dd格式时可以工作,因此首先要检查的是从日期选择器获取的值是否也是这种格式。看看你的日期选择器配置,我突然想到的是,你的格式设置为yy-mm-dd。也许改成yyyy-mm-dd?在设置日期值时,标准SQL要求日期为yyyy-mm-dd格式。