1

jQuery の Datepicker を使用しています。ページが送信されたときに、値が入力されていない場合はNULL、SQL テーブルに挿入する必要があります。代わりに、現在挿入中1900-01-01 00:00:00.000です。NULLjQuery の Datepicker を使用して挿入を渡すことは可能ですか?

何年も前に作成された SQL テーブルでは、データ型は でdatetime、Null を許可ははいに設定されています。Default Value または Binding には何も設定されていません。

また、エラー チェックを行っており、SQL インジェクションの可能性を考慮しています。ここでクラスターを防止し、コードをシンプルで読みやすくするために、ここには含めません。

PHP

$sDate = $_POST['sDatepicker'];
$eDate = (!empty($_POST['eDatepicker'])) ? $_POST['eDatepicker'] : NULL;

$insert = "INSERT INTO table1 (sdate, edate)
            VALUES ('$sDate', '$eDate')";
// Connection, error checking, execution, etc. using ODBC

私も試しました:

if (empty($_POST['eDatepicker'])) {
    $insert = "INSERT INTO table1 (sdate, edate)
                VALUES ('$sDate', NULL)";
} else {
    $eDate = $_POST['eDatepicker'];
    $insert = "INSERT INTO table1 (sdate, edate)
                VALUES ('$sDate', '$eDate')";
}
// Connection, execution, etc.

また、隠しフィールドを追加して使用しようとしました(empty($_POST['eDatepicker']))が、空の場合は日付ピッカーも使用されません。これを行っても、同じ1900-01-01 00:00:00.000.

HTML/jQuery

<div>
    <label>Start Date:</label>
    <input type="text" id="sDatepicker" name="sDatepicker" class="required" />
</div>
<div>
    <label>End Date:</label>
    <input type="text" id="eDatepicker" name="eDatepicker" />
    <input type="submit" value="Submit" id="btnSubmit" />
</div>

$('#sDatepicker, #eDatepicker').datepicker({
    changeMonth: true,
    changeYear: true,
    dateFormat: "mm/dd/yyyy"
});

また、jQueryでdatepickerを分割して追加しようとしましたdefaultDate: nullが、それも機能しませんでした。

4

1 に答える 1

1

フィールド値が「1900-01-01 00:00:00.000」であるかどうかを確認し、 null を挿入するだけです。

if ($_POST['eDatepicker']=="1900-01-01 00:00:00.000") {
    $insert = "INSERT INTO table1 (sdate, edate)
                VALUES ('$sDate', NULL)";
}

更新:この値はdatepickerからのものではないため、デフォルト値がdbに設定されているかどうかを確認する必要があります。

簡単な修正は、デフォルトの日付をdatepickerに追加し、phpで確認することです

$('#sDatepicker, #eDatepicker').datepicker({
    changeMonth: true,
    changeYear: true,
    dateFormat: "mm/dd/yyyy"
    defaultDate:"01/01/1900" //some date
});

if ($_POST['eDatepicker']=="01/01/1900") {
        $insert = "INSERT INTO table1 (sdate, edate)
                    VALUES ('$sDate', NULL)";  //insert null
    }
于 2013-10-21T16:07:23.173 に答える