Boas, este é o meu primeiro post no Portugal-a-Programar. Sou um programador que está agora a começar e estou com umas dúvidas acerca de um tutorial que vi para fazer um calendário Ajax.
Os erros são os seguintes:
"Notice: Undefined index: showmonth in C:\xampp\htdocs\calendar_start.php on line 3
Notice: Undefined index: showyear in C:\xampp\htdocs\calendar_start.php on line 4"
Penso que , das duas uma, o showmonth e/ou o showyear estão incorrectos, ou as variáveis não estão a passar. Alguma ajuda?
Cá vai o código:
Calendar_start.php
Código :
ShowCalendar.php
Código :
Obrigado pelo vosso tempo e por qualquer tipo de ajuda!
Os erros são os seguintes:
"Notice: Undefined index: showmonth in C:\xampp\htdocs\calendar_start.php on line 3
Notice: Undefined index: showyear in C:\xampp\htdocs\calendar_start.php on line 4"
Penso que , das duas uma, o showmonth e/ou o showyear estão incorrectos, ou as variáveis não estão a passar. Alguma ajuda?
Cá vai o código:
Calendar_start.php
Código :
<?php
$showmonth = $_POST['showmonth'];
$showyear = $_POST ['showyear'];
$showmonth = preg_replace('#[^0-9]#i','',$showmonth);
$showyear = preg_replace('#[^0-9]#i','',$showmonth);
$day_count = cal_days_in_month(CAL_GREGORIAN, $showmonth, $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)));
echo '<div id="calendar_wrap">';
echo '<div class="title_bar">';
echo '<div class="previous_month"><input name="myBtn" type="submit" value="PreviousMonth" onclick="javascript:last_month();"></div>';
echo '<div id="show_month">' .$showmonth. '/' .$showyear. '</div>';
echo '<div class="next_month"><input name="myBtn" type="submit" value="NextMonth" onclick="javascript:next_month();"></div>';
echo '</div>';
echo '<div class="week_days">';
echo '<div class="days_of_week">Sun</div>';
echo '<div class="days_of_week">Mon</div>';
echo '<div class="days_of_week">Tue</div>';
echo '<div class="days_of_week">Wed</div>';
echo '<div class="days_of_week">Thu</div>';
echo '<div class="days_of_week">Fri</div>';
echo '<div class="days_of_week">Sat</div>';
echo '<div class="clear"></div>';
echo '</div>';
/*Previous Month Filler Days */
if($pre_days != 0){
for ($i = 1; $i <= $pre_days; $i++){
echo '<div class ="non_cal_day"></div>';
}
}
/*Current Month */
for($i = 1 ; $i <= $day_count; $i++){
echo '<div class="cal_day">';
echo '<div class="day_heading">' .$i.'</div>';
echo '</div>';
}
?>
$showmonth = $_POST['showmonth'];
$showyear = $_POST ['showyear'];
$showmonth = preg_replace('#[^0-9]#i','',$showmonth);
$showyear = preg_replace('#[^0-9]#i','',$showmonth);
$day_count = cal_days_in_month(CAL_GREGORIAN, $showmonth, $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)));
echo '<div id="calendar_wrap">';
echo '<div class="title_bar">';
echo '<div class="previous_month"><input name="myBtn" type="submit" value="PreviousMonth" onclick="javascript:last_month();"></div>';
echo '<div id="show_month">' .$showmonth. '/' .$showyear. '</div>';
echo '<div class="next_month"><input name="myBtn" type="submit" value="NextMonth" onclick="javascript:next_month();"></div>';
echo '</div>';
echo '<div class="week_days">';
echo '<div class="days_of_week">Sun</div>';
echo '<div class="days_of_week">Mon</div>';
echo '<div class="days_of_week">Tue</div>';
echo '<div class="days_of_week">Wed</div>';
echo '<div class="days_of_week">Thu</div>';
echo '<div class="days_of_week">Fri</div>';
echo '<div class="days_of_week">Sat</div>';
echo '<div class="clear"></div>';
echo '</div>';
/*Previous Month Filler Days */
if($pre_days != 0){
for ($i = 1; $i <= $pre_days; $i++){
echo '<div class ="non_cal_day"></div>';
}
}
/*Current Month */
for($i = 1 ; $i <= $day_count; $i++){
echo '<div class="cal_day">';
echo '<div class="day_heading">' .$i.'</div>';
echo '</div>';
}
?>
ShowCalendar.php
Código :
<!DOCTYPE HTML>
<html>
<head>
<link href="calendar4u.css" rel="stylesheet" type="text/css" media="all" />
<script language="Javascript" type="text/javascript">
function initalCalendar(){
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.getElementBtyId("showCalendar").innerHTML = return_data;
}
}
hr.send(vars);
document.getElementById("showCalendar").innerHTML ="processing...";
}
</script>
<script language="Javascript" type="text/javascript">
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.getElementBtyId("showCalendar").innerHTML = return_data;
}
}
hr.send(vars);
document.getElementById("showCalendar").innerHTML ="processing...";
}
}
</script>
<script language="Javascript" type="text/javascript">
function last_month(){
var lastmonth = showmonth - 1;
if(lastmonth < 1){
nextmonth = 12;
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.getElementBtyId("showCalendar").innerHTML = return_data;
}
}
hr.send(vars);
document.getElementById("showCalendar").innerHTML ="processing...";
}
}
</script>
</head>
<body onload ="initialCalendar();">
<div id="showCalendar"></div>
</body>
</html>
<html>
<head>
<link href="calendar4u.css" rel="stylesheet" type="text/css" media="all" />
<script language="Javascript" type="text/javascript">
function initalCalendar(){
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.getElementBtyId("showCalendar").innerHTML = return_data;
}
}
hr.send(vars);
document.getElementById("showCalendar").innerHTML ="processing...";
}
</script>
<script language="Javascript" type="text/javascript">
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.getElementBtyId("showCalendar").innerHTML = return_data;
}
}
hr.send(vars);
document.getElementById("showCalendar").innerHTML ="processing...";
}
}
</script>
<script language="Javascript" type="text/javascript">
function last_month(){
var lastmonth = showmonth - 1;
if(lastmonth < 1){
nextmonth = 12;
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.getElementBtyId("showCalendar").innerHTML = return_data;
}
}
hr.send(vars);
document.getElementById("showCalendar").innerHTML ="processing...";
}
}
</script>
</head>
<body onload ="initialCalendar();">
<div id="showCalendar"></div>
</body>
</html>
Obrigado pelo vosso tempo e por qualquer tipo de ajuda!