PHP的未定义索引
undefined index for PHP
大家好,我正在做一个功能与日历使用AJAX和PHP
$showmonth = $_POST['showmonth'];
$showyear = $_POST['showyear'];
$pre_days = date ('w', mktime(0,0,0, $showmonth, 1, $showyear));
$post_days = (6 - (date('w', mktime(0, 0, 0, $showmonth, $day_count, $showyear))));
我一直得到错误消息说:
注意:未定义的索引:showmonth在C:'xampp'htdocs'calendar_start.php的第2行
注意:未定义的索引:showyear在C:'xampp'htdocs'calendar_start.php第3行
警告:cal_days_in_month()期望参数2是长字符串,在C:'xampp'htdocs'calendar_start.php第8行
警告:mktime()期望参数4是长字符串,在C:'xampp'htdocs'calendar_start.php第9行
警告:mktime()期望参数4是长字符串,在C:'xampp'htdocs'calendar_start.php第10行
我认为这与我的AJAX java脚本有关但我只是不知道AJAX代码还有什么其他部分但我认为这是困扰我的部分
function next_month() {
var nextmonth = showmonth + 1;
if(nextmonth >12) {
nextmonth = 1;
showyear = showyear + 1;
}
showmonth = nextmonth;
var hr = new XMLHttpRequest();
var url = "calendar_start.php";
var vars = "showmonth="+showmonth+"&showyear="+showyear;
hr.open("POST",url,true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.onreadystatechange = function() {
if(hr.readyState == 4 && hr.status == 200) {
var return_data = hr.responseText;
document.getElementById("showCalendar").innerHML = return_data;
}
}
hr.send(vars);
document.getElementById("showCalendar").innerHTML = "processing...";
}
</script>
这可能也是问题所在:
function initialCalendar() {
var hr = new XMLHttpRequest();
var url = "calendar_start.php";
var currentTime = new Date();
var month = currentTime.getMonth() + 1;
var year = currentTime.getFullYear();
showmonth = month;
showyear = year;
var vars = "showmonth="+showmonth+"&showyear="+showyear;
hr.open("POST", url, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.onreadystatechange = function() {
if(hr.readyState == 4 && hr.status == 200) {
var return_data = hr.responseText;
document.getElementById("showCalendar").innerHML = return_data;
}
}
hr.send(vars);
document.getElementById("showCalendar").innerHTML = "processing...";
}
花了5个小时后,我发现了这个:http://www.openjs.com/articles/ajax_xmlhttp_using_post.php
在这里你可以发现你所需要的只是两行:
hr.setRequestHeader("Content-length", vars.length);
hr.setRequestHeader("Connection", "close");
是否使用相同的方法(POST/GET)发送和接收参数…?如果不是这样,它可能会给出未定义的索引错误…例如,如果您使用GET发送参数,使用POST接收参数,反之亦然。
如果你在你的javascript中改变这个??
var url = "calendar_start.php";
var vars = "showmonth="+showmonth+"&showyear="+showyear;
var final_url = url+"?"+vars;
alert(final_url); //this line should a message with the url, post it please.
hr.open("GET",final,true);
应该可以。
PS:你用get参数传递你的url所以在你的php文件中你应该接收到它们,比如$showmonth = $_GET['showmonth']; //I change POST by GET
$showyear = $_GET['showyear']; //DONT forget to chenge this in your php file
Saludos;)
相关文章:
- 尝试在PHP中回显输入文本时出现未定义的索引错误
- 传递给 PHP 表单时 JavaScript 动态变量上的未定义索引
- 使用ajax时,php中未定义的索引
- “未定义的索引:itemdetails”,当将JSON对象从JavaScript发送到PHP时
- 未定义的索引-表单不通过javascript将值发送到php代码
- 尝试使用AJAX将JavaScript变量传递给PHP,但得到'未定义的索引'
- angular.js:13424 ReferenceError:在控制器中使用工厂方法时未定义索引
- 通过AJAX访问时,$_POST中出现未定义的索引错误
- PHP的原因注意:未定义的索引:
- PHP未定义的索引(由jquery文件上传引起)
- 如何删除cookie错误注意:PHP上的未定义索引
- 某些浏览器中cookie的未定义索引
- Ajax / PHP 注意:未定义的索引:
- 面对此错误“ 未捕获的引用错误:幻灯片索引未定义 ”在光滑.js
- 0索引未定义或只是缺少
- 用户:索引未定义
- 所选索引未定义
- 无效的列索引未定义.取值范围为[0-8]之间的整数
- 运行函数几次后索引未定义
- jQuery TypeError:数组索引未定义