• Some users have recently had their accounts hijacked. It seems that the now defunct EVGA forums might have compromised your password there and seems many are using the same PW here. We would suggest you UPDATE YOUR PASSWORD and TURN ON 2FA for your account here to further secure it. None of the compromised accounts had 2FA turned on.
    Once you have enabled 2FA, your account will be updated soon to show a badge, letting other members know that you use 2FA to protect your account. This should be beneficial for everyone that uses FSFT.

Beginner question

Yes_sir21

Weaksauce
Joined
Dec 31, 2009
Messages
85
I am creating my first site and im new to programming so be nice :p. , I have a calender on my site which has next, previous month button. But when i press the press those buttons it takes me out of the my site and the next month appears alone on a blank site. How can i get this right ?

This is the code calendar code.
Code:
<?php


function generate_calendar($year, $month, $days = array(), $day_name_length = 3, $month_href = NULL, $first_day = 0, $pn = array()){
	$first_of_month = gmmktime(0,0,0,$month,1,$year);

	$day_names = array(); #generate all the day names according to the current locale
	for($n=0,$t=(3+$first_day)*86400; $n<7; $n++,$t+=86400) #January 4, 1970 was a Sunday
		$day_names[$n] = ucfirst(gmstrftime('%A',$t)); #%A means full textual day name

	list($month, $year, $month_name, $weekday) = explode(',',gmstrftime('%m,%Y,%B,%w',$first_of_month));
	$weekday = ($weekday + 7 - $first_day) % 7; #adjust for $first_day
	$title   = htmlentities(ucfirst($month_name)).'&nbsp;'.$year;  #note that some locales don't capitalize month and day names

	
	@list($p, $pl) = each($pn); @list($n, $nl) = each($pn); #previous and next links, if applicable
	if($p) $p = '<span class="calendar-prev">'.($pl ? '<a href="'.htmlspecialchars($pl).'">'.$p.'</a>' : $p).'</span>&nbsp;';
	if($n) $n = '&nbsp;<span class="calendar-next">'.($nl ? '<a href="'.htmlspecialchars($nl).'">'.$n.'</a>' : $n).'</span>';
	$calendar = '<table class="calendar">'."\n".
		'<caption class="calendar-month">'.$p.($month_href ? '<a href="'.htmlspecialchars($month_href).'">'.$title.'</a>' : $title).$n."</caption>\n<tr>";

	if($day_name_length){ #if the day names should be shown ($day_name_length > 0)
		#if day_name_length is >3, the full name of the day will be printed
		foreach($day_names as $d)
			$calendar .= '<th abbr="'.htmlentities($d).'">'.htmlentities($day_name_length < 4 ? substr($d,0,$day_name_length) : $d).'</th>';
		$calendar .= "</tr>\n<tr>";
	}

	if($weekday > 0) $calendar .= '<td colspan="'.$weekday.'">&nbsp;</td>'; #initial 'empty' days
	for($day=1,$days_in_month=gmdate('t',$first_of_month); $day<=$days_in_month; $day++,$weekday++){
		if($weekday == 7){
			$weekday   = 0; #start a new week
			$calendar .= "</tr>\n<tr>";
		}
		if(isset($days[$day]) and is_array($days[$day])){
			@list($link, $classes, $content) = $days[$day];
			if(is_null($content))  $content  = $day;
			$calendar .= '<td'.($classes ? ' class="'.htmlspecialchars($classes).'">' : '>').
				($link ? '<a href="'.htmlspecialchars($link).'">'.$content.'</a>' : $content).'</td>';
		}
		else $calendar .= "<td>$day</td>";
	}
	if($weekday != 7) $calendar .= '<td colspan="'.(7-$weekday).'">&nbsp;</td>'; #remaining "empty" days

	return $calendar."</tr>\n</table>\n";
}
$time = time();
$oldlocale = setlocale(LC_TIME, NULL); #save current locale 
    setlocale(LC_TIME, 'nl_NL'); #dutch 
   
    setlocale(LC_TIME, $oldlocale); 

$days = array( 
        2=>array('cal.php','linked-day'), 
        3=>array('/weblog/archive/2004/Jan/03','linked-day'), 
        8=>array('/weblog/archive/2004/Jan/08','linked-day'), 
        22=>array('/weblog/archive/2004/Jan/22','linked-day'),
    );  

    $pn = array('&laquo;'=>'juni.php', '&raquo;'=>'juni.php');
    
echo generate_calendar(date('Y', $time), 7,$days,3,null,0,$pn); 
?>

this links the button to the next or previous button, but how do can get it to stay on the site?
$pn = array('&laquo;'=>'june.php', '&raquo;'=>'may.php');

i might be wrong but i assume have to use GET function ?
 
I personally would handle the calendar via ajax, that would save you from having to do any page loads at all. If you're comfortable with javascript I'd look into it, its a fairly simple concept if you understand basic JS and backend programming.

A tutorial site I recommend for a lot of intro coding:

http://www.tizag.com/ajaxTutorial/

btw it taking you to a new page is an issue with the links you're using, I assume the link code is something like:

Code:
&lt;a href="calendar.php?month=next/july"&gt;Next&lt;/a&gt;
 
I personally would handle the calendar via ajax, that would save you from having to do any page loads at all. If you're comfortable with javascript I'd look into it, its a fairly simple concept if you understand basic JS and backend programming.

A tutorial site I recommend for a lot of intro coding:

http://www.tizag.com/ajaxTutorial/

btw it taking you to a new page is an issue with the links you're using, I assume the link code is something like:

Code:
&lt;a href="calendar.php?month=next/july"&gt;Next&lt;/a&gt;

ajax would be the best and safest bet, your next option would be using a jquery code which can be a little more unnerving, but the outcome would be pretty sleek looking.
 
Because your new, I'll also point out that calendar functionality has been implemented using many different frameworks/languages. For example, dojo, jquery, flex, and maybe even html5 (?).
 
Unfortunately i haven't used Ajax before and after google it does seems like a large subject.
Any tips on I how can implement ajax with that code ??
I need to solve this quickly, help is much appreciated.

http://www.tizag.com/ajaxTutorial/ wasnt that clear to me.
 
IBM has a very good introduction to AJAX:
http://www.ibm.com/developerworks/views/web/libraryview.jsp?search_by=Mastering+Ajax

It's in multiple parts, and it's a very long read. You could easily skip the later chapters, however, as they go off in tangents a bit.

tizag is pretty good, I learned a lot from that website.

I would suggest jQuery with some calendar plugin. You have to know some jQuery, but there are usually tutorials associated with each plugin, so it's not too bad.

Some good ones:
http://www.1stwebdesigner.com/freebies/jquery-calendar-plugins/
 
If you're writing AJAX for anything beyond personal enjoyment, I strongly recommend that you use JQuery or some other framework rather than low-level calls. There's enough difference in the javascript implementations of various browsers that, in order to get them all working, you'll have to write pages of code to test, identify & work with various browsers. Any worthwhile framework will take care of this for you and provides higher-level abstractions of the underlying AJAX functionality.

Also, don't take the "X" in AJAX too seriously - JSON and YAML are far more pleasant to deal with.
 
Back
Top