Visualizzazione risultati 1 fino 4 di 4

Discussione: [PHP] Sviluppo piccolo script gestione pizzate di classe

  1. #1
    Guest

    Predefinito [PHP] Sviluppo piccolo script gestione pizzate di classe

    Ciao a tutti,
    stavo scrivendo un piccolo script per la gestione delle pizzate di classe...
    L'idea di base è avere una pagina simile a questa, con tutti i nomi delle persone della classe e una serie di checkbox ciascuno che servono a dare o no la disponibilità per un dato giorno.
    Ho scritto uno script mio, potete vedere il risultato abbozzato qui...

    http://www.websmasher.altervista.org...ta/pizzata.php

    Il punto è che non sono capace di fare praticamente nulla
    Quindi se provate a cambiare impostazioni e a cliccare su "Invia" succedono casini!!
    C'è qualcuno di voi che mi dà una mano a scrivere questo script?

    Vorrei utilizzare un file di testo come "database" della pizzata, strutturato così:

    Codice:
    _|_|_|_|        //separatore di persone
    A Nome1        //A = identificatore persona; Nome1 = nome persona
    giorni:1;5;8;   //giorni: stringa di default per la terza riga; poi numeri separati da ";". Servono a indicare il vettore delle disponibilità in ordine crescente di checkbox
    note:nota1     //note: stringa di default per la quarta riga; poi stringa con note, saranno inserite in un <textarea>
    _|_|_|_|
    B Nome2
    giorni:4;8;
    note:nota2
    _|_|_|_|
    C Nome3
    giorni:1;6;
    note:
    _|_|_|_|
    D Nome4
    giorni:1;2;3;7;
    note:ciao
    Io quando ho scritto il mio codice ho pensato a questa idea...
    Avete idee migliori? Modifiche a queata idea?
    Datemi una mano ragazzi, dipendo da voi
    Grazie anticipatamente
    P.S se volete vedere il mio codice (mi vergogno terribilmente) fatemelo sapere che lo posto

  2. #2
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Io creerei un file dove sono presenti tutti i nomi con il relativo identificatore, un file per ogni pizzata dove ci saranno tutti gli identificatori di tutte le persone che partecipano e un altro file con l'elenco di tutte le pizzate.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  3. #3
    Guest

    Predefinito

    Ciao funcool, guarda questo è uno script che devo usare solo io, non mi servono le configurazioni delle pizzate...lo script in pratica lo devo solo usare adesso, e mai più...
    Ma il punto della situazione è che mi serve sapere in quali date le persone sarebbero disponibili, capisci? E' per quello che mi servono 8 checkbox, ognuno per ogni persona...Cioè, mi spiego meglio: dobbiamo ORGANIZZARE una pizzata, e vogliamo sapere in quale "riga" (di checkbox) ci sono più persone che partecipano, e la pizzata si farà quel giorno lì...

    Date un'occhiata alla pagina http://www.websmasher.altervista.org...ta/pizzata.php e capirete perfettamente il problema...

    Io in pratica non riesco a creare una funzione che salvi i parametri dei checkbox e delle note in un file, perchè la funzione che legge il file di configurazione e stampa la relativa tabella funziona bene (visibile sempre alla pagina sopraelencata, che è generata automaticamente da un file di testo che si chiama core.txt)
    Aspettate, vi posto il codice che mi crea la tabella partendo dal file core.txt

    Codice completo tabella dinamica

    Codice:
    <form method="POST" action="pizzata.php">
    <table border="1" width="100%" id="table1" bordercolorlight="#000000" bordercolordark="#000000" style="border-collapse: collapse">
    	<tr>
    		<td width="20%">Nome</td>
    		<td width="52%" colspan="8">Disponibilità</td>
    		<td width="30%">Note</td>
    	</tr>
    	<tr>
    		<td width="20%" rowspan="2">&nbsp;</td>
    		<td width="24%" height="25" colspan="2">Marzo</td>
    		<td width="26%" height="25" colspan="6">Aprile</td>
    		<td width="30%" rowspan="2">&nbsp;</td>
    	</tr>
    	<tr>
    		<td width="7%">30</td>
    		<td width="7%">31</td>
    		<td width="6%">7</td>
    		<td width="6%">8</td>
    		<td width="6%">14</td>
    		<td width="6%">15</td>
    		<td width="6%">20</td>
    		<td width="6%">21</td>
    	</tr>
    	<tr>
    
    
    <?php
    $handle = fopen("core.txt","r");
    
    while(!feof($handle)) {
        $buffer = fgets($handle, 4096);
        $buffer = fgets($handle, 4096);
        if( sscanf($buffer, "%s %s", $id, $nome) == 2 ) {
    	echo "<td width='20%'>$nome</td>";
    	$buffer = fgets($handle, 4096);
    	$tokens = substr($buffer,7);
    	$arr_tkns = explode(";", $tokens);
    	$k = 0;
    	while($k < 8) {
    	    $k2 = $k + 1;
    	    $finale = sprintf("%s%d",$id,$k2);
    	    echo "<td width='7%'><input type='checkbox' name='$finale' value='vero'";
    	    $i = 0; $checked = 0;
    	    if(count($arr_tkns) > 1) while($i < count($arr_tkns)) { if($k+1 == $arr_tkns[$i]) $checked = 1; $i++; }
    	    if($checked == 1) echo " checked></td>";
    	    else echo "></td>";
    	    $k++;
    	}
    	$buffer = fgets($handle, 4096);
    	$note = substr($buffer,5);
    	$id_note = "S_".$id;
    	echo "<td width='30%'><textarea rows='2' name='".$id_note."' cols='15'>".$note."</textarea></td></tr>";
        }
    }
    ?>
    
    
    </tr>
    </table>
    <input type="hidden" value="1" name="salva">
    <input type="submit" value="invia">
    </form>
    Bene...questo crea la pagina completa. Ora, come faccio a salvarmi i contenuti della pagina sempre nel file core.txt, con la stessa tabulazione, ordine e formato del file core.txt?

    core.txt

    Codice:
    _|_|_|_|        //separatore di persone
    A Nome1        //A = identificatore persona; Nome1 = nome persona
    giorni:1;5;8;   //giorni: stringa di default per la terza riga; poi numeri separati da ";". Servono a indicare il vettore delle disponibilità in ordine crescente di checkbox
    note:nota1     //note: stringa di default per la quarta riga; poi stringa con note, saranno inserite in un <textarea>
    _|_|_|_|
    B Nome2
    giorni:4;8;
    note:nota2
    _|_|_|_|
    C Nome3
    giorni:1;6;
    note:
    _|_|_|_|
    D Nome4
    giorni:1;2;3;7;
    note:ciao
    //....e così via

  4. #4
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da WebSmasher
    Ora, come faccio a salvarmi i contenuti della pagina sempre nel file core.txt, con la stessa tabulazione, ordine e formato del file core.txt?
    Apri il file con la funzione fopen, ci scrivi su con la funzione fwrite e richiudi il file con la funzione fclose.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •