Ciao a tutti!
vi ringrazio in anticipo.....
Ho appena iniziato a programmare in php e sto adattando un'agenda "preconfezionata" alla grafica del mio sito.
Ho una tabella per ciascuna settimana del mese, contenente i giorni (lun-ven) e le ore (8-20, suddivise in mezze ore, quindi 8-8.30-9-9.30-ecc.).
Quando inserisco un appuntamento deve comparirmi su questa tabella un riquadro giallo contenente la descrizione di esso, allineata con l'orario relativo (che specifico nella maschera di creazione dell'appuntamento).
Il codice che ho scritto funziona sia in Firefox sia in Google Chrome e funziona tutto correttamente.
Su Internet Explorer, invece, ci sono dei problemi di allineamento... non viene allineato il riquadro contenente la descrizione dell'appuntamento con la casella dell'ora (anzi man mano che si va verso fine pagina, il disallineamento diventa sempre più evidente).
Mi viene il dubbio che IE abbia problemi coi div, ma non riesco proprio a capire dove sia l'errore.
Codice che crea il div contenente la visualizzazione dell'appuntamento:
<?PHP
createUserDiv();
$counter = 1;
while ($counter <= $num_utenti)
{
$query = "select * from appuntamenti,partecipazione where id=idapp and iduser='$utenti[$counter]' and data='$dateformat'";
$result = mysql_query($query,$conn);
while ($record = mysql_fetch_array($result))
{
createAppDiv($counter,$record);
}
$counter++;
}
mysql_close();
?>
Variabili dichiarate in un'altra pagina che regolano altezza/larghezza della griglia:
// Distanza della griglia dal margine sinistro
$tableXpos = 230;
// Distanza della griglia dal margine superiore
$tableYpos = 272;
// Larghezza delle colonne della griglia
$column_width = 170;
// Altezza delle righe della griglia
$row_height = 60;
// Larghezza della colonna delle ore
$hourColumnWidth = 25;
$divheight = (26 * $row_height) + 25;
$table_width = $hourColumnWidth;
Funzione richiamata nella prima procedura:
function createAppDiv($numColumn,$record)
{
global $tableXpos;
global $tableYpos;
global $hourColumnWidth;
global $row_height;
global $column_width;
$orainiziodivisa = explode(":",$record[orainizio]);
$orafinedivisa = explode(":",$record[orafine]);
$minutiinizio = $orainiziodivisa[0] * 61 + $orainiziodivisa[1];
$minutifine = $orafinedivisa[0] * 61 + $orafinedivisa[1];
$minutiiniziali = 8 * 61;
$divXpos = $tableXpos + $hourColumnWidth + ($column_width * ($numColumn - 1)) - $numColumn;
$divYpos = $tableYpos + $row_height + 1 + ($minutiinizio - $minutiiniziali) * 2;
if ($orainiziodivisa[1] == 30) //Per far combaciare con il bordo della cella anche nelle mezz'ore
$divYpos = $divYpos + 1;
$div_height = ($minutifine - $minutiinizio) * 2;
$div = "<div style=\"position:absolute; width:" .$column_width. "px; height:" .$div_height. "px; z-index:100; left:" .$divXpos. "px; top:" .$divYpos. "px;\">\n";
echo $div;
fillAppDiv($div_height,$record);
echo "</div>\n";
}