无法将datepicker日期插入mysql

时间:2013-08-28 21:19:34

标签: php jquery html datepicker

我在从datepicker格式化日期以将其插入到mysql数据库时遇到问题。正如您所看到的,datepicker格式为 yy-mm-dd ,我需要简单的 Y-m-d mysql格式。我已经尝试了很多选项,比如将字符串“\”替换为“ - ”和strtotime()以及两者一起,但它只是不起作用。你能帮帮我吗?

我的代码是:

HTML:

<script>
  $(document).ready(function() {
    $("#datepicker").datepicker({
        dateFormat: 'yy-mm-dd'
    });
  });
  </script>

</head>

<body>
    <div id="wrap"> <!--wrap start-->
        <br />
        <h1>Zbiranje podatkov</h1>
         <form action="" method="post" id="mainform">
        <table id="table_data">

            <tr> 
                <td>Ime</td>
                <td><input name="fname" type="text" size="40"></td>
                <td><span class="fname_val validation"></span></td>
            </tr>
            <tr> 
                <td>Priimek</td>
                <td><input name="lname" type="text" size="40"></td>
                <td><span class="lname_val validation"></span></td>

            </tr>
            <tr> 
                <td>E-pošta</td>
                <td><input name="email" type="text" size="40"></td>
                <td><span class="email_val validation"></span></td>
            </tr>
            <tr> 
                <td>Datum</td>
                <td><input id="datepicker" size="40" name="datepicker" type="text" /></td>
                <td><span class="datepicker_val validation"></span></td>
            </tr>
            <tr>
                <td>&nbsp;</td>
                <td><input name="register" type="button" value="Potrdi"> <span class="loading"></span></td>
                <td>&nbsp;</td>
            </tr>
        </table>
        <div id="note">
        <b>Email Already Exist:</b> <span style="color:#B41F2B;">john_doe@istockphp.com</span>
        </div>
       </form>
     </div> <!--wrap end-->
  </body>
</html>

PHP IS:

<?php
require_once("database.php"); //
header('Content-Type: text/html; charset=utf-8');

/* catch the post data from ajax */
$fname = $_POST['fname']; 
$lname = $_POST['lname'];
$email = $_POST['email'];
$date = date('Y-m-d',  strtotime($_POST['datepicker']));

$query = mysql_query("SELECT `email` FROM `contacts` WHERE `email` = '$email'");
if(mysql_num_rows($query) == 1) { // if return 1, email exist.
    echo '1';
} else { // else not, insert to the table

    $query = mysql_query("INSERT INTO `contacts` (`name` ,`surname` , `email`, `birthday`, `insert_timestamp`)
                        VALUES ('$fname', '$lname', '$email', '$date', NOW())"); 

  }

?>

JS代码在这里:

jQuery(function($) {
    var val_holder;

    $("form input[name='register']").click(function() { // triggred click 

        /************** form validation **************/
        val_holder      = 0;
        var fname       = jQuery.trim($("form input[name='fname']").val()); // first name field
        var lname       = jQuery.trim($("form input[name='lname']").val()); // last name field
        var email       = jQuery.trim($("form input[name='email']").val()); // email field
                var datepicker      = jQuery.trim($("form input[name='datepicker']").val()); // datum field
        var email_regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/; // reg ex email check  

        if(fname == "") {
            $("span.fname_val").html("Prosimo vpišite ime.");
        val_holder = 1;
        } 
        if(lname == "") {
            $("span.lname_val").html("Prosimo, vpišite priimek.");
        val_holder = 1;
        } 
        if(email == "") {
            $("span.email_val").html("Prosimo, vpišite emial.");
        val_holder = 1;
        }
                if(datepicker == "") {
            $("span.datepicker_val").html("Prosimo, izberite datum.");
        val_holder = 1;
        }
        if(email != "") {
            if(!email_regex.test(email)){ // if invalid email
                $("span.email_val").html("Email ni pravilen.");
                val_holder = 1;
            } 
        }
        if(val_holder == 1) {
            return false;
        }  
        val_holder = 0;
        /************** form validation end **************/

        /************** start: email exist function and etc. **************/
        $("span.loading").html("<img src='images/ajax_fb_loader.gif'>");
        $("span.validation").html("");

        var datastring = 'fname='+ fname +'&lname='+ lname +'&email='+ email; // get data in the form manual
        //var datastring = $('form#mainform').serialize(); // or use serialize

        $.ajax({
                    type: "POST", // type
                    url: "check_email.php", // request file the 'check_email.php'
                    data: datastring, // post the data
                    success: function(responseText) { // get the response
                        if(responseText == 1) { // if the response is 1
                            $("span.email_val").html("<img src='images/invalid.png'> E-poštni naslov že obstaja.");
                            $("span.loading").html("");
                        } else { // else blank response
                            if(responseText == "") { 
                                $("span.loading").html("<img src='images/correct.png'> Registracije je uspešna.");
                                $("span.validation").html("");
                                $("form input[type='text']").val(''); // optional: empty the field after registration
                            }
                        }
                    } // end success
        }); // ajax end
        /************** end: email exist function and etc. **************/
    }); // click end
}); // jquery end

2 个答案:

答案 0 :(得分:3)

使用DateTime()

$date = DateTime::createFromFormat('y-m-d', $_POST['datepicker']);
echo $date->format('Y-m-d');

答案 1 :(得分:1)

问题出在JS代码中......

var datastring = 'fname='+ fname +'&lname='+ lname +'&email='+ email; 

我忘了宣布var为日期......