Robert Granlund
asked on
Week Calendar PREV and NEXT
OK, I give up! I'm not sure what I am doing wrong!
I have the following script that determines the date and shows a 1 week Calendar.
The Next Week Button and the PREV week button work 100%. However, depending on the day, there is a query that pulls information from a DB and displays it on the correct date. This also works 100%. However, when I click NEXT or PREVIOUS the Calendar itself does not change date. (At line 38)
I have the following script that determines the date and shows a 1 week Calendar.
The Next Week Button and the PREV week button work 100%. However, depending on the day, there is a query that pulls information from a DB and displays it on the correct date. This also works 100%. However, when I click NEXT or PREVIOUS the Calendar itself does not change date. (At line 38)
function weekCalendar($date='Today') { // METHOD
$pdo = new PDO("");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$timestamp = strtotime(date('Y-m-01', strtotime($date)));
$caption = date("F Y", $timestamp);
$date = !empty($_GET['d']) ? $_GET['d'] : 'Today';
$ts = !empty($_GET['d']) ? strtotime($_GET['d']) : strtotime('Today');
if (!$ts) $ts = strtotime('Today');
$prev = date('Y-m-d', $ts - 60*60*24*7);
$next = date('Y-m-d', $ts + 60*60*24*7);
$prev_link = '<a href="' . $_SERVER['PHP_SELF'] . "?d=$prev" . '">Prev</a>' . PHP_EOL;
$next_link = '<a href="' . $_SERVER['PHP_SELF'] . "?d=$next" . '">Next</a>' . PHP_EOL;
$date_adv = date('Y-m', $ts);
?>
<table id="cal_nav">
<tr>
<td class="cal-nav-left"><h2><?php echo $prev_link; ?></h2></td>
<td class="cal-nav-center"><h2><?php echo date('F Y', strtotime($date)); ?></h2></td>
<td class="cal-nav-right"><h2><?php echo $next_link; ?></h2></td>
</tr>
</table>
<?php
echo PHP_EOL;
echo "<table class='full'><tr>";
for($day=1; $day<=7; $day++) {
echo '<td class="align-top"><strong>' .date('D M d', strtotime($date_adv.'-'.$day)).'</strong><br />';
$this_date = date('Y-m-d', strtotime($date_adv.'-'.$day));
echo $this_date;
$sql = "SELECT schedule_id, first_name, last_name, asset_name, asset_type, start_date, workorder_id, color
FROM schedule
WHERE start_date = '$this_date'
GROUP BY schedule_id DESC";
$pdos = $pdo->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
try{
$pdos->execute();
if ($pdos) {
while ($row = $pdos->fetch(PDO::FETCH_OBJ)) {
$at = $row->asset_type;
$fn = $row->first_name;
$ln = $row->last_name;
$sd = $row->start_date;
$id = $row->schedule_id;
$ac = $row->color;
if ($sd == $this_date && $at == 'driver') {
echo '<a href="view_workorder_print.php?id='.$id.'">'.$fn .''. $ln .'</a><br />';
}
} // END WHILE
} // END IF
} // END TRY
catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
echo "<td>";
} // END FOR
echo "</tr></table>";
}
// END WEEK CAKENDAR
}
Is this on a public-facing server where we can see the rendered HTML document? If no, can you please put it in a test environment so we can see it in action? Thanks, ~Ray
I think you want to follow the $this_date variable in the logic. Not sure about that but it's getting late in the day here. If you look at the PHP code and the generated HTML document closely, you may find that the HTML is not what you expected from running the PHP. In particular, the HTML document starts with this:
</tr></table>
}
// END WEEK CAKENDAR
}
?><!DOCTYPE html>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
@Ray. I was able to edit it into what I needed. So strange. I looked all over the internet for an example of how to do this, to no real avail. Thanks again!
Glad to be able to help! Thanks, ~Ray