2016-04-18 12 views
1

私はdatePickerのフォーカスが外れたときにPOSTメソッドを実行するJavaScriptを持っています(これも通常の送信ボタンで試しました)。rent-fetch-pick-up-point.phpを実行します。 PHPは実行されますが、POSTデータを取得していないため、ifステートメントを通過することはありません。日付ピッカーはここtime-period-from

datepickerTo.blur(function(){ 
    if (selectedDateFrom.length > 0) { 

    datepickerFrom.delay(500).queue(function(){ 

     $.ajax({ 
     type: "POST", 
     url: "include/rent-fetch-pick-up-point.php", 
     data: {action: selectedDateFrom}, 
     success: function(data) { 
      $("#pick-up-point-container").html(data); 
     } 
     }); 
    }); 
    } 
}); 

入力フィールドに結合されているPHPコードです:

if (isset($_POST['time-period-from'])) { 
    require '../include/connection.php'; 

    $dateFrom = $_POST['time-period-from']; 
    $sql = "SELECT * FROM order WHERE $dateFrom BETWEEN date_from AND date_to"; 
    $result = mysqli_query($connection, $sql); 
    $numRows = mysqli_num_rows($result); 

    echo $sql; // For testing purposes 
} 

そして、ここではHTMLです:

<input type="text" name="time-period-from" id="datepicker-from" class="datepicker"></p> 

私も.post $を(使用してみました) $ .ajax()の代わりに、私は同じ問題に遭遇しました:

$.post("include/rent-fetch-pick-up-point.php", {name: selectedDateTo}, function(data) { 

    $("#pick-up-point-container").text(data) 

}); 
+0

あなたはaction' 'でデータを送っている実現しないと'time-period-from'ではなく? –

+2

あなたの投稿は 'time-period-from'ではなく' action'です... try: '$ _POST ['action']' –

+2

あなたのコードは[SQL-Injections](http://stackoverflow.com/questions)に脆弱です。/60174/how-can-i-prevent-sql-injection-in-php)を使用します。 –

答えて

2

$_POSTのキーは、オブジェクトのキーから来たあなたは値が元来入っていたフォームフィールドの名前ではなく、data:オプションに渡します。あなたが使用しているので:

data: { action: selectedDateFrom } 

値が$_POST['action']、ない$_POST['time-period-from']になります。だから、使用する必要があります。

if (isset($_POST['action'])) 

と:

$dateFrom = $_POST['action']; 

か、JavaScriptを変更することができます:

data: { "time-period-from": selectedDateFrom } 
+0

それを完全に説明してくれてありがとう。 – robert

0

あなたのselectedDateFrom変数があなたの投稿情報が正しく取得できない配列であると思います。

data: {action: $('#selectedDateFrom').serializeArray()} 

その後、あなたはあなたがPHP側で右変数をつかんされていない正しく

+0

なぜそれが配列だと思いますか? – Barmar

+0

selectedDateFrom.lengthを使用すると、配列または文字列であると思われます。 –

+0

おそらく '$("#selectedDateFrom ")。val()'という文字列です。 – Barmar

0

フォームデータを取得:

if (isset($_POST['action'])) { 
    require '../include/connection.php'; 

    $dateFrom = $_POST['action']; 
    $sql = "SELECT * FROM order WHERE $dateFrom BETWEEN date_from AND date_to"; 
    $result = mysqli_query($connection, $sql); 
    $numRows = mysqli_num_rows($result); 
    echo $sql; // For testing purposes 
} 
関連する問題