2017-01-09 75 views
0

HTML:空數據時到jQuery的AJAX POST請求

<script> 
    $(function() { 
     var min = new Date(2017, 03, 01); 
     var max = new Date(2017, 05, 30); 
     $("#datepicker").multiDatesPicker({ 
      maxPicks: 21, numberOfMonths: [1, 3], dateFormat: 'd.m.y', defaultDate: '1.4.17', minDate: min, maxDate: max, onSelect: function (dateText, inst) { 
       $("#save").text("Speichern").removeClass("btn-success").addClass("btn-default") 
      } 
     }); 
     $("#datepicker").addClass("center"); 
    }); 
</script> 
<script> 
    function speichern() { 
     var url; 
     var success; 
     var data; 
     var error; 
     var dataType = "text"; 
     $("#save").text("Wird gespeichert..."); 
     success = function (ergebnis) { 
      $("#save").text("Gespeichert").removeClass("btn-default").addClass("btn-success"); 
     }; 
     url = "saver/save"; 
     data = {'dates[]': $("#datepicker").multiDatesPicker("getDates")}; 
     error = function (event, jqXHR, thrownError) { 
      alert(thrownError.toLocaleString()); 
     } 
     $.post({url: url, success: success, data: data, error: error, dataType: dataType}); 
    } 
</script><p> 
<div id="datepicker"></div></p> 
<button id="save" class="btn btn-default" style="float:right;margin-bottom: 10px" onclick="speichern()">Speichern</button> 

PHP:

<?php 

class saver extends CI_Controller 
{ 
    function save() 
    { 
     $dates = $this->input->post['dates[]']; 
     var_dump($dates); 
     echo $dates; 
     //echo "erfolgreich gespeichert"; 
    } 
} 

$日期是空的,但我真的不知道爲什麼!還嘗試過'數據','日期','數據'...的帖子['日期[]'],但沒有奏效。數據是包含具有選定日期的數組的對象(出於某種原因?)。來自PHP腳本的響應是NULL。發送參數例如:日期[]:「12.6.17」

編輯:它必須是一個CodeIgniter錯誤,因爲$ _POST給了我我想要的!

回答

0

在JavaScript數組的創建爲:

var dates = [] OR var dates = new Array(); 

因此,如下更改腳本代碼:

<script> 
    function speichern() { 
     var url; 
     var success; 
     var data; 
     var error; 
     dates = []; 
     dates = $("#datepicker").multiDatesPicker("getDates"); 
     var dataType = "text"; 
     $("#save").text("Wird gespeichert..."); 
     success = function (ergebnis) { 
      $("#save").text("Gespeichert").removeClass("btn-default").addClass("btn-success"); 
     }; 
     url = "saver/save"; 
     data = {'dates':dates}; 
     error = function (event, jqXHR, thrownError) { 
      alert(thrownError.toLocaleString()); 
     } 
     $.post({url: url, success: success, data: data, error: error, dataType: dataType}); 
    } 
</script> 

而且在PHP中:

$date = $this->input->post('dates'); 
print_r($date); 

希望它會幫助你。

+0

我按照你的建議改變了我的腳本,但結果是一樣的。問題不在於發送,而在接收方,因爲數據傳輸成功。 –