Selección de fecha en calendario php

Respuesta de
a
Usuario
Hola soy Juan Diego ¿cómo estás? La verdad necesito urgente tu ayuda intenté de todo para solucionar mi problema y no logré, verás en el archivo procesardatospedidos ingreso los pedidos de los asistentes, mi problema es el siguiente: tengo un calendario y mi profesor me pidió que hay hacer click en un día del calendario la fecha de ese día tiene que aparecer la fecha del día que selecciones enla caja de texto de la fecha de entrega
<html>
<head>

<style>    
      .calendario
      {
    border: 1px solid #000;
    width: 200px;
    }
    .gris
    {
        background: #CBCBCB;
    }
</style>

<title>Pedidos de Materiales</title>
</head>
<body>
<center>
<h1><b><u>Ingresando Pedidos de Materiales</u></b></h1>
<form action="procesardatospedidos.php" method="get" name="frmcombo">
<?php
    $link = mysql_connect("localhost","root","");
    mysql_select_db("laboratorio",$link) or die ("No se puede conectar");
    $detective=$_GET['comboname'];
    $result=mysql_query("select * from docente where nombre='".$detective."'",$link);
    $row=mysql_fetch_array($result);
    $codoc=$row["ID"];
    $nomdoc=$row["nombre"];
    $correo=$row["email"];
?>
<?php
    $result=mysql_query("select * from docente where asistente='Yes'",$link);
?>
<table>
<tr>
<td><b><i>Buscar Asistente</i></b></td>
<td><select name="comboname" size="1" onChange="frmcombo.submit();">
    <option selected="selected" value="">Seleccione Asistente</option>
    <?php
        while ($row=mysql_fetch_array($result))
        {
            echo "<option value=".$row["nombre"].">".$row["nombre"];
        }
    ?>
</select></td>
</tr>
</table>
</form>
<form action="procesarpedidos.php">
<TABLE>
<TR>
   <TD><b><i>Código del Asistente:</i></b></TD>
   <TD><INPUT TYPE="text" NAME="codasistente" SIZE="20" MAXLENGTH="30" VALUE="<?php echo $codoc; ?>"></TD>
</TR>
<TR>
   <TD><b><i>Nombre del Asistente:</i></b></TD>
   <TD><INPUT TYPE="text" NAME="nomdocente" SIZE="20" MAXLENGTH="30" VALUE="<?php echo $nomdoc; ?>"></TD>
<TR>
   <TD><b><i>Correo Electrónico:</i></b></TD>
   <TD><INPUT TYPE="text" NAME="correodocente" SIZE="20" MAXLENGTH="30" VALUE="<?php echo $correo; ?>"></TD>
</TR>     
</TR>
<TR>
   <TD><b><i>Fecha del Pedido:</i></b></TD>
   <TD><INPUT TYPE="text" NAME="fechapedido" SIZE="20" MAXLENGTH="30" VALUE="<?php echo date("j / n / Y"); ?>"></TD>
</TR>
<TR>
   <TD><b><i>Hora del Pedido:</i></b></TD>
   <TD><INPUT TYPE="text" NAME="horapedido" SIZE="20" MAXLENGTH="30" VALUE="<?php echo date("G: i: s"); ?>"></TD>
</TR>
<TR>
   <TD><b><i>Materiales:</i></b></TD>
   <TD><INPUT TYPE="text" NAME="materiales" SIZE="20" MAXLENGTH="30"></TD>
</TR>
<TR>
   <TD><b><i>Estado del Pedido:</i></b></TD>
   <TD><INPUT TYPE="text" NAME="estado" SIZE="20" MAXLENGTH="30"></TD>
</TR>
</TABLE>
<br>
<?php
$dias = date('t');
$hoy  = date('j');
if (($diasem = date('w', mktime(0, 0, 0, date('m'), 1, date('y')))) == 0)
$diasem = 7;
$start = false;
$sum = 0;
echo '
<table class="calendario">
';
echo '
<tr class>
<td>L</td>
<td>M</td>
<td>M</td>
<td>J</td>
<td>V</td>
<td>S</td>
<td>D</td>
</tr>
<tr>
';
for ($i = 1; $i <= ($dias + $sum); $i++)
{
    if (!$start)
    if ($i <= 7 && $i == $diasem)
    {
        $start = true; $sum = $i - 1;
    }
    else
    {
        echo '
<td></td>
';
    }
    if ($start)
    {
        if (($i - 1) % 7 == 0) echo '
</tr>
<tr>
';
        echo '
<td' . ($i == ($hoy + $sum) ? ' class="gris"' : '') . '>' . ($i - $sum ). '</td>
';
    }
}
echo '
</tr>
</table>
';
?>

<br>
<table>
<TR>
   <TD><b><i>Fecha de Entrega:</i></b></TD>
   <TD><INPUT TYPE="text" NAME="fechaentregado" SIZE="20" MAXLENGTH="30"></TD>
</TR>
<TR>
   <TD><b><i>Fecha de Recibido:</i></b></TD>
   <TD><INPUT TYPE="text" NAME="fecharecibido" SIZE="20" MAXLENGTH="30"></TD>
</TR>
</table>
<br>
<INPUT TYPE="submit" NAME="accion" VALUE="Guardar Pedidos">
</form>
<hr>
<br>
<?php
    $link = mysql_connect("localhost","root","");
    mysql_select_db ("laboratorio", $link) or die ("No se puede conectar");
    $result=mysql_query("select * from pedidos order by nomdocente",$link);
    if ($row= mysql_fetch_array($result))
    {
       echo "<TABLE BORDER='1'>";
       echo "<TR>
               <TD><b>Código del Pedido</b></TD>
            <TD><b>Nombre del Docente</b></TD>
            <TD><b>Fecha del Pedido</b></TD>
            <TD><b>Hora del Pedido</b></TD>
            <TD><b>Materiales</b></TD>
            <TD><b>Estado del Pedido</b></TD>
            <TD><b>Fecha de Entrega</b></TD>
            <TD><b>Fecha de Recibido</b></TD>
        </TR>";
   do
   {
    echo "<TR>
            <TD><b>".$row["codigopedido"]."</b></TD>
            <TD><b>".$row["nomdocente"]."</b></TD>
            <TD><b>".$row["fechapedido"]."</b></TD>
            <TD><b>".$row["horapedido"]."</b></TD>
            <TD><b>".$row["materiales"]."</b></TD>
            <TD><b>".$row["estado"]."</b></TD>
            <TD><b>".$row["fechaentregado"]."</b></TD>
            <TD><b>".$row["fecharecibido"]."</b></TD>
        </TR>";
   }
   while ($row=mysql_fetch_array($result));
   echo "</TABLE>";
}
?>
<br>
</center>
</body>
</html>
En las líneas que te subrayé está la codificación para el calendario, tengo el presentimiento que un hivervínculo y el evento onclick o onchange tendría que ir pero la verdad no sé en que línea debe ir y no sé cómo ponerlo.
Como te dije intenté solucionarlo y no pude hacerlo, necesito urgente tu ayuda ¿puedes ayudarme a decir que me falta poner y cómo solucionar este problema? Sí puedes responder este mje te lo agradezco.
Usuario
Hola soy Juan Diego ¿cómo estás? La verdad necesito urgente tu ayuda intenté de todo para solucionar mi problema y no logré, verás en el archivo procesardatospedidos ingreso los pedidos de los asistentes, mi problema es el siguiente: tengo un calendario y mi profesor me pidió que hay hacer click en un día del calendario la fecha de ese día tiene que aparecer la fecha del día que selecciones enla caja de texto de la fecha de entrega
<html>
<head>

<style>    
      .calendario
      {
    border: 1px solid #000;
    width: 200px;
    }
    .gris
    {
        background: #CBCBCB;
    }
</style>

<title>Pedidos de Materiales</title>
</head>
<body>
<center>
<h1><b><u>Ingresando Pedidos de Materiales</u></b></h1>
<form action="procesardatospedidos.php" method="get" name="frmcombo">
<?php
    $link = mysql_connect("localhost","root","");
    mysql_select_db("laboratorio",$link) or die ("No se puede conectar");
    $detective=$_GET['comboname'];
    $result=mysql_query("select * from docente where nombre='".$detective."'",$link);
    $row=mysql_fetch_array($result);
    $codoc=$row["ID"];
    $nomdoc=$row["nombre"];
    $correo=$row["email"];
?>
<?php
    $result=mysql_query("select * from docente where asistente='Yes'",$link);
?>
<table>
<tr>
<td><b><i>Buscar Asistente</i></b></td>
<td><select name="comboname" size="1" onChange="frmcombo.submit();">
    <option selected="selected" value="">Seleccione Asistente</option>
    <?php
        while ($row=mysql_fetch_array($result))
        {
            echo "<option value=".$row["nombre"].">".$row["nombre"];
        }
    ?>
</select></td>
</tr>
</table>
</form>
<form action="procesarpedidos.php">
<TABLE>
<TR>
   <TD><b><i>Código del Asistente:</i></b></TD>
   <TD><INPUT TYPE="text" NAME="codasistente" SIZE="20" MAXLENGTH="30" VALUE="<?php echo $codoc; ?>"></TD>
</TR>
<TR>
   <TD><b><i>Nombre del Asistente:</i></b></TD>
   <TD><INPUT TYPE="text" NAME="nomdocente" SIZE="20" MAXLENGTH="30" VALUE="<?php echo $nomdoc; ?>"></TD>
<TR>
   <TD><b><i>Correo Electrónico:</i></b></TD>
   <TD><INPUT TYPE="text" NAME="correodocente" SIZE="20" MAXLENGTH="30" VALUE="<?php echo $correo; ?>"></TD>
</TR>     
</TR>
<TR>
   <TD><b><i>Fecha del Pedido:</i></b></TD>
   <TD><INPUT TYPE="text" NAME="fechapedido" SIZE="20" MAXLENGTH="30" VALUE="<?php echo date("j / n / Y"); ?>"></TD>
</TR>
<TR>
   <TD><b><i>Hora del Pedido:</i></b></TD>
   <TD><INPUT TYPE="text" NAME="horapedido" SIZE="20" MAXLENGTH="30" VALUE="<?php echo date("G: i: s"); ?>"></TD>
</TR>
<TR>
   <TD><b><i>Materiales:</i></b></TD>
   <TD><INPUT TYPE="text" NAME="materiales" SIZE="20" MAXLENGTH="30"></TD>
</TR>
<TR>
   <TD><b><i>Estado del Pedido:</i></b></TD>
   <TD><INPUT TYPE="text" NAME="estado" SIZE="20" MAXLENGTH="30"></TD>
</TR>
</TABLE>
<br>
<?php
$dias = date('t');
$hoy  = date('j');
if (($diasem = date('w', mktime(0, 0, 0, date('m'), 1, date('y')))) == 0)
$diasem = 7;
$start = false;
$sum = 0;
echo '
<table class="calendario">
';
echo '
<tr class>
<td>L</td>
<td>M</td>
<td>M</td>
<td>J</td>
<td>V</td>
<td>S</td>
<td>D</td>
</tr>
<tr>
';
for ($i = 1; $i <= ($dias + $sum); $i++)
{
    if (!$start)
    if ($i <= 7 && $i == $diasem)
    {
        $start = true; $sum = $i - 1;
    }
    else
    {
        echo '
<td></td>
';
    }
    if ($start)
    {
        if (($i - 1) % 7 == 0) echo '
</tr>
<tr>
';
        echo '
<td' . ($i == ($hoy + $sum) ? ' class="gris"' : '') . '>' . ($i - $sum ). '</td>
';
    }
}
echo '
</tr>
</table>
';
?>

<br>
<table>
<TR>
   <TD><b><i>Fecha de Entrega:</i></b></TD>
   <TD><INPUT TYPE="text" NAME="fechaentregado" SIZE="20" MAXLENGTH="30"></TD>
</TR>
<TR>
   <TD><b><i>Fecha de Recibido:</i></b></TD>
   <TD><INPUT TYPE="text" NAME="fecharecibido" SIZE="20" MAXLENGTH="30"></TD>
</TR>
</table>
<br>
<INPUT TYPE="submit" NAME="accion" VALUE="Guardar Pedidos">
</form>
<hr>
<br>
<?php
    $link = mysql_connect("localhost","root","");
    mysql_select_db ("laboratorio", $link) or die ("No se puede conectar");
    $result=mysql_query("select * from pedidos order by nomdocente",$link);
    if ($row= mysql_fetch_array($result))
    {
       echo "<TABLE BORDER='1'>";
       echo "<TR>
               <TD><b>Código del Pedido</b></TD>
            <TD><b>Nombre del Docente</b></TD>
            <TD><b>Fecha del Pedido</b></TD>
            <TD><b>Hora del Pedido</b></TD>
            <TD><b>Materiales</b></TD>
            <TD><b>Estado del Pedido</b></TD>
            <TD><b>Fecha de Entrega</b></TD>
            <TD><b>Fecha de Recibido</b></TD>
        </TR>";
   do
   {
    echo "<TR>
            <TD><b>".$row["codigopedido"]."</b></TD>
            <TD><b>".$row["nomdocente"]."</b></TD>
            <TD><b>".$row["fechapedido"]."</b></TD>
            <TD><b>".$row["horapedido"]."</b></TD>
            <TD><b>".$row["materiales"]."</b></TD>
            <TD><b>".$row["estado"]."</b></TD>
            <TD><b>".$row["fechaentregado"]."</b></TD>
            <TD><b>".$row["fecharecibido"]."</b></TD>
        </TR>";
   }
   while ($row=mysql_fetch_array($result));
   echo "</TABLE>";
}
?>
<br>
</center>
</body>
</html>
En las líneas que te subrayé está la codificación para el calendario, tengo el presentimiento que un hivervínculo y el evento onclick o onchange tendría que ir pero la verdad no sé en que línea debe ir y no sé cómo ponerlo.
Como te dije intenté solucionarlo y no pude hacerlo, necesito urgente tu ayuda ¿puedes ayudarme a decir que me falta poner y cómo solucionar este problema? Sí puedes responder este mje te lo agradezco.
Avatar
Experto
Pon un link en cada día del mes y algo así:
a href="#" onclick="javascript:form.campodestino.value=this.value+"mes"+"anno""
Ojo, está mal, pero es un comienzo, a ver si lo puedes averiguar as´. Lo que hace es al hacer click en un día del mes, actualiza el campo campodestino
Saludos
Usuario
Hola de nuevo gracias por responder me mje, es que no sé cómo y en dónde poner el hipervínculo en uno de los td puede ser pero la verdad no tengo ninguna idea de cómo seleccionar una fecha en html php ¿puedes ayudarme a resolver este lío? Sí puedes responder este mje te lo agradezco.
Avatar
Experto
Lo pondrías aquí, sustituyendo la XXX por el código de antes arreglado:
Echo '
<td' . ($i == ($hoy + $sum) ? ' class="gris"' : '') . '>XXX' . ($i - $sum ). '</td>
Luego te faltaría arreglar el final del link con </a>, etc...
Créeme, si no sabes un poco de programación es muy complicado de explicar...
Saludos
Usuario
Hola, perdona que te moleste pero voy a ser honesto la verdad en programación web soy un novato y hago lo que puedo, pero llego una instancia en que no sé que hacer con este calendario porque nunca dí calendario php en la utu y el prof me lo pidió de último minuto y encontré esta codificación.
<?php
$dias = date('t');
$hoy  = date('j');
if (($diasem = date('w', mktime(0, 0, 0, date('m'), 1, date('y')))) == 0)
$diasem = 7;
$start = false;
$sum = 0;
echo '
<table class="calendario">
';
echo '
<tr class>
<td>L</td>
<td>M</td>
<td>M</td>
<td>J</td>
<td>V</td>
<td>S</td>
<td>D</td>
</tr>
<tr>
';
for ($i = 1; $i <= ($dias + $sum); $i++)
{
    if (!$start)
    if ($i <= 7 && $i == $diasem)
    {
        $start = true; $sum = $i - 1;
    }
    else
    {
        echo '
<td></td>
';
    }
    if ($start)
    {
        if (($i - 1) % 7 == 0) echo '
</tr>
<tr>
';
        echo '
<td'.($i ==($hoy + $sum)? 'class="gris"':").'><a href="#">'.($i - $sum).'</td>
</a>
;
    }
}
echo
</tr>
</table>
;
?>
La línea que subrayé es la tiene el o los errores y no sé cual es el problema, ¿puedes ayudarme a resolver este lío? Sí puedes responder este mje te lo agradezco.
Avatar
Experto
¿Qué error te dice...?
Usuario
Parse error: syntax error, unexpected T_CLASS in C:\xampp\htdocs\xampp\laboratorio\procesardatospedidos.php on line 111
Avatar
Experto
Si la 111 es esta:
<td'.($i ==($hoy + $sum)? 'class="gris"':").'><a href="#">'.($i - $sum).'</td>
</a>;
Los dos puntos después del class te estarán dando error
Usuario
Hola, muchas gracias te tengo buenas noticias solucioné el error del hipervínculo me quedó así:
Echo '
<td' . ($i == ($hoy + $sum) ? ' class="gris"' : '') . '><a href="#">' . ($i - $sum ). '</a></td>
';
Y ahora viene lo más difícil que es cuando yo haga click en un día cualquiera del calendario que me aparezca en la siguiente caja de texto:
<INPUT TYPE="text" NAME="fechaentregado" SIZE="20" MAXLENGTH="30" onChange="frmpedidos">
En la línea que subrayé es la caja de texto dónde quiero que me aparezca la fecha, puse el Onchange por poner sí es eso o no, no sé cómo arreglar este problema ¿puedes ayudarme a resolver este lío?, sí puedes responder este mensaje te lo agradezco.

Avatar
Experto
En el vinculo de cada fecha, pon algo como: onclick="javascript: document.form.fechaentregado.value=X" donde X es la fecha actual, y el tema del form, etc. Por favior, echa un vistazo a manejar javascript, me está siendo muy dificil ayudarte si no tienes algunos conceptos básicos.
Saludos
Usuario
Hola, mira la fecha que quiero mostrar no es la fecha actual sino cualquier fecha que esta en el calendario que al hacer click en un día cualquiera pueda mostrar la fecha en la caja de texto que te mostré, por cierto ¿qué página me recomiendas para saber cómo usar javascript? Sí puedes responder este mje te lo agradezco.
Avatar
Experto
Mira este ejemplo a ver si te aclara algo:
http://www.desarrolloweb.com/articulos/1160.php
Saludos
Usuario
Hola, te cuento descargué los archivos del calendario de la página que me dijiste, muchas gracias pero dime ¿cómo puedo adaptarlo al código fuente que tengo? Porque mi idea era hacerlo en la misma página y eso no sé hacerlo, ¿puedes ayudarme a resolver este lío? Sí puedes responder este mje te lo agradezco.
Avatar
Experto
Lo cierto es que no tengo tiempo para poder solucionarte el asunto. Esta página es para ayudar a resolver errores, pero de verdad, me costaría más de 2 horas tratar de adaptar el código a tu diseño.
Creo que te he dado todas las herramientas para poder hacerlo, que es el objetivo de todocharlas.com.
Siento no poder ayudarte más, más de 6 respuestas por pregunta, me parece exagerado.
Saludos
Usuario
Tienes razón con eso y debo aceptarlo igualmente gracias por tu tiempo