如何使用Jquery获取pickadate值?

I've been trying to save data written in a form to my local SQL, everything was perfect until I noticed that the date is not being passed (at least correctly).

I'm using Materalize CSS, PHP, MYSQL and JQuery in this project

This is the datepicker input, works greats, I can select the date flawlessly

    <div class="input-field col s12 flow-text">
        <i class="material-icons prefix">today</i>
        <input id="FECHA_NAC_E" name="FECHA_NAC_E" value="" required type="text" class="datepicker">
        <label class = "flow-text" for="FECHA_NAC_E">Fecha de Nacimiento</label>
    </div>

This is the jquery script that it's executed when I click on the Submit button.

<script type="text/javascript">

  function insertData() {
    var NUM_EMP=$("#NUM_EMP").val();
    var NOMBRE_E=$("#NOMBRE_E").val();
    var APELLIDO_E=$("#APELLIDO_E").val();
//  var FECHA_NAC_E=$("#FECHA_NAC_E").val(); Doesn't work
//  var FECHA_NAC_E=$("#FECHA_NAC_E").text(); Doesn't work
    var FECHA_NAC_E=$("#FECHA_NAC_E").get('select', 'yyyy-mm-dd') //Doesn't work
    var SEXOE=$("input[name=SEXOE]").val();
    var NACIONALIDAD=$("#NACIONALIDAD").val();


// AJAX code to send data to php file.
        $.ajax({
            type: "POST",
            url: "altaempleados.php",
            data: {NUM_EMP:NUM_EMP,NOMBRE_E:NOMBRE_E,APELLIDO_E:APELLIDO_E,FECHA_NAC_E:FECHA_NAC_E,SEXOE:SEXOE,NACIONALIDAD:NACIONALIDAD},
            dataType: "JSON",
            success: function(data) {
             $("#message").html(data);
            $("p").addClass("alert alert-success");
            },
            error: function(err) {  
            console.log(err);
            alert(err.err);
            }
        });
}

And this is my PHP

include('db.php');
$NUM_EMP=$_POST['NUM_EMP'];
$NOMBRE_E=$_POST['NOMBRE_E'];
$APELLIDO_E=$_POST['APELLIDO_E'];
$FECHA_NAC_E=$_POST['FECHA_NAC_E'];
$SEXOE=$_POST['SEXOE'];
$NACIONALIDAD=$_POST['NACIONALIDAD'];


$stmt = $DBcon->prepare("INSERT INTO empleados(NUM_EMP,NOMBRE_E,APELLIDO_E,FECHA_NAC_E,SEXO_E,NACIONALIDAD) VALUES(:NUM_EMP,:NOMBRE_E,:APELLIDO_E,:FECHA_NAC_E,:SEXOE,:NACIONALIDAD)");

$stmt->bindparam(':NUM_EMP', $NUM_EMP);
$stmt->bindparam(':NOMBRE_E', $NOMBRE_E);
$stmt->bindparam(':APELLIDO_E', $APELLIDO_E);
$stmt->bindparam(':FECHA_NAC_E', $FECHA_NAC_E);
$stmt->bindparam(':SEXOE', $SEXOE);
$stmt->bindparam(':NACIONALIDAD', $NACIONALIDAD);
$DBcon=null;
    // By this way you can close connection in PDO.

if($stmt->execute())

Everything but the date is saved, the first row was put there manually DB

doujing1156
doujing1156 我没有看到$('。datepicker')。datepicker({dateFormat:'mm-dd-yy',onSelect:function(date){/*你的日期在这里*/}})。
接近 3 年之前 回复
dongyunque2511
dongyunque2511 它在输入中,所以你应该使用.val()。
接近 3 年之前 回复

1个回答

Change this

In your script...

<script type="text/javascript">
    function insertData() {
        var NUM_EMP=$("#NUM_EMP").val();
        var NOMBRE_E=$("#NOMBRE_E").val();
        var APELLIDO_E=$("#APELLIDO_E").val();
        var FECHA_NAC_E=$("#FECHA_NAC_E").val(); //Keep this as it is.
        var SEXOE=$("input[name=SEXOE]").val();
        var NACIONALIDAD=$("#NACIONALIDAD").val();
        // AJAX code to send data to php file.
        $.ajax({
            type: "POST",
            url: "altaempleados.php",
            data: {NUM_EMP:NUM_EMP,NOMBRE_E:NOMBRE_E,APELLIDO_E:APELLIDO_E,FECHA_NAC_E:FECHA_NAC_E,SEXOE:SEXOE,NACIONALIDAD:NACIONALIDAD},
            dataType: "JSON",
            success: function(data) {
             $("#message").html(data);
            $("p").addClass("alert alert-success");
            },
            error: function(err) {  
            console.log(err);
            alert(err.err);
            }
        });
    }
</script>

In your PHP code

    include('db.php');
    $NUM_EMP=$_POST['NUM_EMP'];
    $NOMBRE_E=$_POST['NOMBRE_E'];
    $APELLIDO_E=$_POST['APELLIDO_E'];
    $FECHA_NAC_E=date('Y-m-d',strtotime($_POST['FECHA_NAC_E']));//Change the date format to YYYY-MM-DD
    $SEXOE=$_POST['SEXOE'];
    $NACIONALIDAD=$_POST['NACIONALIDAD'];


    $stmt = $DBcon->prepare("INSERT INTO empleados(NUM_EMP,NOMBRE_E,APELLIDO_E,FECHA_NAC_E,SEXO_E,NACIONALIDAD) VALUES(:NUM_EMP,:NOMBRE_E,:APELLIDO_E,:FECHA_NAC_E,:SEXOE,:NACIONALIDAD)");

    $stmt->bindparam(':NUM_EMP', $NUM_EMP);
    $stmt->bindparam(':NOMBRE_E', $NOMBRE_E);
    $stmt->bindparam(':APELLIDO_E', $APELLIDO_E);
    $stmt->bindparam(':FECHA_NAC_E', $FECHA_NAC_E);
    $stmt->bindparam(':SEXOE', $SEXOE);
    $stmt->bindparam(':NACIONALIDAD', $NACIONALIDAD);
    $DBcon=null;
        // By this way you can close connection in PDO.

if($stmt->execute())

You will get what you want.

douzi2785
douzi2785 别客气...
接近 3 年之前 回复
duansengcha9114
duansengcha9114 谢谢! 现在它起作用了
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问