Ok this is a bit long but it does work. I hope I have understood what you ment. ok first create a file called cal.php and paste the following into it
<HTML>
<HEAD>
<TITLE>Start Date</TITLE>
<SCRIPT language="javascript">
calarr=new Array
dayarr=new Array
<?
if ( empty($datein) )
{
$datein=date("d/m/Y");
}
list($dd, $mm, $yy)=explode("/", $datein);
$stdate=date("D", mktime(0, 0, 0, $mm, 1, $yy));
$weekdays=array("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun");
$startnum=array_search($stdate, $weekdays);
$lastday=1+date("d", mktime(0, 0, 0, $mm+1, -1, $yy));
$monthname=date("F", mktime(0, 0, 0, $mm, $dd, $yy));
unset($cal);
for ( $loop=0; $loop<$startnum; $loop++ )
{
$cal[$loop]="0";
}
for ( $loop=$startnum; $loop<45; $loop++ )
{
$cal[$loop]=($loop-$startnum);
}
$dayno=0;
$num=1;
for ( $loop=1; $loop<40; $loop++ )
{
if ( (!empty($cal[$loop])) && ($cal[$loop]>0) && ($cal[$loop]<($lastday+1)) )
{
$showval=$cal[$loop];
if ( $cal[$loop] < 10 )
{
$showval="0".$showval;
}
echo "calarr[".$num."]=\"".$showval."/".$mm."/".$yy."\"\n";
echo "dayarr[".$num."]=".$dayno."\n";
$num++;
}
$dayno++;
if ( $dayno > 6 )
{
$dayno=0;
}
}
?>
function sendval(numstr)
{
opener.thisform.stdate.value=calarr[numstr];
opener.thisform.stday.selectedIndex=dayarr[numstr];
window.close();
}
</SCRIPT>
</HEAD>
<? include_once("style.php"); ?>
<BODY>
<?
$nextmonth=date("d/m/Y", mktime(0, 0, 0, $mm+1, $dd, $yy));
$lastmonth=date("d/m/Y", mktime(0, 0, 0, $mm-1, $dd, $yy));
?>
<TABLE border=1 cellpadding=2 cellspacing=2>
<TR>
<TH><A target="self" href="<? echo $PHP_SELF."?datein=".$lastmonth; ?>"><</A></TH>
<TH colspan=5>
<? echo $monthname." ".$yy; ?>
</TH>
<TH><A target="self" href="<? echo $PHP_SELF."?datein=".$nextmonth; ?>">></TH>
</TR>
<?
for ( $loop=1; $loop<8; $loop++ )
{
echo "<TR>\n";
echo "<TH>".$weekdays[($loop-1)]."</TH>\n";
$num=$loop;
for( $loop2=1; $loop2<7; $loop2++ )
{
if ( ($cal[$num] < 1) || ($cal[$num] > $lastday) )
{
echo "<TD width=15> </TD>\n";
}
else
{
echo "<TD width=15 align=\"center\" valign=\"center\">";
$showfield=$cal[$num];
echo "<A href=\"#\" onclick=\"sendval('".$cal[$num]."')\">";
echo $cal[$num]."</A>";
echo "</TD>\n";
}
$num+=7;
}
echo "</TR>\n";
}
?>
</TABLE>
</BODY>
</HTML>
<?
function array_search($needle, $haystack)
{
for ( $loop=0; $loop<count($haystack); $loop++ )
{
if ( $haystack[$loop] == $needle )
{
return($loop);
}
}
return(-1);
}
?>
This is the script to generate a small calender on screen. This needs to be called from another form something like.
<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT language="javascript">
function opencal()
{
window.open("cal.php", "calender", "top=200,left=90,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizeable=no,width=170,height=190");
}
</SCRIPT>
</HEAD>
<BODY>
<FORM name="thisform" action="book.php" method="post">
<TR>
<TD>
Start Date
</TD>
<TD>
<INPUT type="text" name="stdate" size=10 READONLY>
</TD>
<TD>
<INPUT type="button" value="Calender" onclick="opencal()">
</TD>
</TR>
<P>
<INPUT type="submit" value="Submit">
<INPUT type="reset" value="Reset">
</FORM>
</BODY>
</HTML>
The stdate will accept the return value from the calender. You may need to alter the opened window size based on font and font size.
Hope this helps
Mark.