我创建了两个日历datepicker,我尝试获取输入数据或获取“发布”日期,但是当我尝试运行我的代码时,出现此错误,请注意:未定义索引:dateform

我不知道为什么会收到此错误,因为我已经在html中明确指出该值将是post类型,所以为什么要说vaue值未定义,任何人都知道如何解决这个问题。非常感谢您。

html代码-

<form>
  <div action = "/userpage/dateform" method="post" id="datepicker">

<input type="text" name="dateform" id="dateform" class="span2 datepicker" placeholder="From...">

<input type="text" name="dateto" id="dateto" class="span2 datepicker" placeholder="To...">
<div id="datesearch"></div>

<input type="submit" name="dateSearch" value="Search" class="btn">
</div>
  </form>


脚本代码-

<script>
    var datf = $("#dateform").val();
    var datt = $("#dateto").val();
$.ajax({
  type: "GET",
  url: "/userpage/dateform",
  data: datf,datt,
  cache: false,
  success: function(data){
     $("#datesearch").text(data);
  }
});
</script>


php /控制器代码-

public function dateformAction(){

        $from_date = strtotime($_POST['dateform']);
        $to_date = strtotime($_POST['dateto']);


错误信息 -
javascript - 注意: undefined index :dateform-LMLPHP
javascript - 注意: undefined index :dateform-LMLPHP

最佳答案

您没有在表单上指定请求的类型,因此GETPOST。但是,您使用$_POST['dateform']

您需要使AJAX请求成为POST发送变量并将其与$_POST一起使用。

$.ajax({
    type: "POST",
    url: "/userpage/dateform",
    data: {
      "dateForm" : datf,
      "yourKeyNameHere" : datt
    },
    cache: false,
    success: function(data){
       $("#datesearch").text(data);
    }
});


您遇到了两个问题:


$_POST请求指定AJAX时,您正在使用$_GET
指定,后,您有一个尾随的data
这可能不是错误,但是您从未为data指定键。 AFAIK您必须指定一个键才能使用该变量。


编辑1

请检查您的dateform变量是否实际设置。因为那也可能导致问题。

编辑2

这很可能是问题所在。您的url属性似乎不正确。

url: "/userpage/dateform",


您需要设置文件扩展名。

如果您修复了上述所有问题,则有望修复您的脚本。

07-24 09:33