2017-01-09 77 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

我按照你的建议改变了我的脚本,但结果是一样的。问题不在于发送,而在接收方,因为数据传输成功。 –