Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Esercizio Di Php

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    3

    Esercizio Di Php

    QUALCUNO RIESCE A RISOLVERE QUESTO ESERCIZIO E A POSTARE IL CODICE

    Un file di testo (data.txt) contiene righe col seguente formato:
    item1 : value1 (x,y)
    item2 : value2 (x,y)
    item3 : value3 (x,y)
    item4 : value4 (x,y)
    dove il campo itemx e valuex sono stringhe, x e y sono due numeri interi > 0.
    Realizzare una pagina web (table.php) che, leggendo le informazioni dal file, posizioni i campi
    valuex in una tabella ( i campi x e y indicano le coordinate, riga e colonna, della cella dove
    inserire il valore).
    Al passaggio del mouse sopra le singole celle deve comparire, in un box separato esterno alla
    tabella, la stringa itemx corrispondente.
    Se si clicca su una cella, il suo contenuto deve poter essere inserito o modificato.
    Inoltre deve essere previsto un pulsante per il salvataggio di tutti i dati modificati.

  2. #2
    mettiamoci a studiare invece di venire su html.it a farci fare i compiti

    che poi ci troviamo le aziende piene di laureati in discipline informatiche che non distinguono una pagina web da un documento word

    Manuel

    View my profile on LinkedIn
    Ubertini: amo solo te!

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    3
    Io sono arrivato fino a qui studiando ma non riesco a salvare i dati per questo ho chiesto aiuto. Grazie a chi volesse aiutarmi in questo studio.

    Il file data.txt contiene ad esempio:

    item1#value1#1#1
    item2#value2#2#2
    item3#value3#3#3
    item4#value4#4#4

    Il file table.php invece contiene il seguente codice:

    <html>
    <head>

    <script type="text/javascript">

    function controlla(id)
    {
    num=document.getElementById(id);
    num.removeAttribute('readonly');
    }

    function mostraBox(id)
    {
    indici=mio=document.getElementById(id);//Indice dell'array
    c=document.getElementById("liv1");
    c.innerHTML=mio.id;
    }

    function nascondiBox(id,value)
    {
    num=document.getElementById(id);
    num.innerHTML="$mioArray[$i][$j]="+value;
    num.setAttribute('readOnly',true);
    d=document.getElementById('liv1');
    d.innerHTML="";
    }

    function cambia(id)
    {
    v=document.getElementById(id).value;
    alert(v);
    }

    </script>

    <?php
    // Legge i dati dal file di testo per scoprire il numero massimo di righe e di colonne
    function maxx($a)
    {
    $max[0]=0;
    $max[1]=0;
    for($i=0;$i<count($a);$i++)
    {
    if($max[0]<$a[$i][2])
    $max[0]=$a[$i][2];
    if($max[1]<$a[$i][3])
    $max[1]=$a[$i][3];
    }
    return $max;
    }

    // Legge i dati dal file di testo
    function leggi()
    {
    $myData=file("data.txt");
    $mio=array();
    foreach($myData as $value )
    {
    $value=chop($value);
    $mio[]=explode("#",$value);
    }
    return $mio;
    }

    function salva($elenco)
    {
    print_r($elenco);
    print_r("Sto Salvando");
    $mioFile=fopen("data.txt","w");
    foreach($elenco as $row)
    {
    $riga=implode("#",$row);
    fwrite($mioFile,$riga."\n");
    }
    fclose($mioFile);
    }

    ?>

    <title>table1.php</title>
    </head>

    <body>
    <form method="post" action="http://localhost/leggi.php">
    <input type="hidden" name="controllo">
    <? $mioArray=leggi();
    //print_r($mioArray);
    $max=maxx($mioArray);
    // print_r($max);
    ?>

    <table border="1">
    <?
    for($i=1;$i<=$max[0];$i++) // max[0] è il massimo numero di righe
    {
    echo"<tr>";
    for($j=1;$j<=$max[1];$j++) // max[1] è il massimo numero di colonne
    {
    echo "<td>";
    $contr=false;
    $val_id=$i."_".$j;
    for($t=0;$t<count($mioArray);$t++)
    {
    if(($mioArray[$t][2]==$i) && ($mioArray[$t][3]==$j))
    {
    $val_id=$mioArray[$t][0];
    echo "<input name=\"campo\" id=\"$val_id\" size=\"5\"
    onclick=\"controlla(id)\"
    onMouseOver=\"mostraBox(id)\"
    onMouseOut=\"nascondiBox(id,value)\"
    onchange=\"cambia(id)\" readonly type=\"text\" value=".$mioArray[$t][1].">";
    $contr=true;
    }
    }
    if(!$contr)
    {
    echo "<input id=\"$val_id\" size=\"5\"
    onclick=\"controlla(id)\"
    onMouseOver=\"mostraBox(id)\"
    onMouseOut=\"nascondiBox(id,value)\" readonly type=\"text\" value=\"\">";
    }
    echo "</td>";
    }
    echo "</tr>";
    }
    ?>
    </table>
    <div id="liv1" >
    </div>
    <div id="liv2">
    <input type="submit" value="Salva">
    </div>
    </form>
    </body>
    </html>

  4. #4
    Originariamente inviato da salvo75
    Io sono arrivato fino a qui studiando ma non riesco a salvare i dati per questo ho chiesto aiuto. Grazie a chi volesse aiutarmi in questo studio.

    Il file data.txt contiene ad esempio:

    item1#value1#1#1
    item2#value2#2#2
    item3#value3#3#3
    item4#value4#4#4

    Il file table.php invece contiene il seguente codice:

    <html>
    <head>

    <script type="text/javascript">

    function controlla(id)
    {
    num=document.getElementById(id);
    num.removeAttribute('readonly');
    }

    function mostraBox(id)
    {
    indici=mio=document.getElementById(id);//Indice dell'array
    c=document.getElementById("liv1");
    c.innerHTML=mio.id;
    }

    function nascondiBox(id,value)
    {
    num=document.getElementById(id);
    num.innerHTML="$mioArray[$i][$j]="+value;
    num.setAttribute('readOnly',true);
    d=document.getElementById('liv1');
    d.innerHTML="";
    }

    function cambia(id)
    {
    v=document.getElementById(id).value;
    alert(v);
    }

    </script>

    <?php
    // Legge i dati dal file di testo per scoprire il numero massimo di righe e di colonne
    function maxx($a)
    {
    $max[0]=0;
    $max[1]=0;
    for($i=0;$i<count($a);$i++)
    {
    if($max[0]<$a[$i][2])
    $max[0]=$a[$i][2];
    if($max[1]<$a[$i][3])
    $max[1]=$a[$i][3];
    }
    return $max;
    }

    // Legge i dati dal file di testo
    function leggi()
    {
    $myData=file("data.txt");
    $mio=array();
    foreach($myData as $value )
    {
    $value=chop($value);
    $mio[]=explode("#",$value);
    }
    return $mio;
    }

    function salva($elenco)
    {
    print_r($elenco);
    print_r("Sto Salvando");
    $mioFile=fopen("data.txt","w");
    foreach($elenco as $row)
    {
    $riga=implode("#",$row);
    fwrite($mioFile,$riga."\n");
    }
    fclose($mioFile);
    }

    ?>

    <title>table1.php</title>
    </head>

    <body>
    <form method="post" action="http://localhost/leggi.php">
    <input type="hidden" name="controllo">
    <? $mioArray=leggi();
    //print_r($mioArray);
    $max=maxx($mioArray);
    // print_r($max);
    ?>

    <table border="1">
    <?
    for($i=1;$i<=$max[0];$i++) // max[0] è il massimo numero di righe
    {
    echo"<tr>";
    for($j=1;$j<=$max[1];$j++) // max[1] è il massimo numero di colonne
    {
    echo "<td>";
    $contr=false;
    $val_id=$i."_".$j;
    for($t=0;$t<count($mioArray);$t++)
    {
    if(($mioArray[$t][2]==$i) && ($mioArray[$t][3]==$j))
    {
    $val_id=$mioArray[$t][0];
    echo "<input name=\"campo\" id=\"$val_id\" size=\"5\"
    onclick=\"controlla(id)\"
    onMouseOver=\"mostraBox(id)\"
    onMouseOut=\"nascondiBox(id,value)\"
    onchange=\"cambia(id)\" readonly type=\"text\" value=".$mioArray[$t][1].">";
    $contr=true;
    }
    }
    if(!$contr)
    {
    echo "<input id=\"$val_id\" size=\"5\"
    onclick=\"controlla(id)\"
    onMouseOver=\"mostraBox(id)\"
    onMouseOut=\"nascondiBox(id,value)\" readonly type=\"text\" value=\"\">";
    }
    echo "</td>";
    }
    echo "</tr>";
    }
    ?>
    </table>
    <div id="liv1" >
    </div>
    <div id="liv2">
    <input type="submit" value="Salva">
    </div>
    </form>
    </body>
    </html>
    Studia studia

    Consiglio se vuoi che qc ti aiuti fai domande
    + specifiche fai il debug del codice e vedi cosa
    c'è di sbagliato (praticamente tutto )


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  5. #5
    @salvo75

    iniziamo a fare un po di analisi del tuo problema...

    secondo me dovresti caricare il contenuto del file in un oggetto... poi chiamando un metodo di quell'oggetto, passando delle coordinate, il metodo dovrebbe restiruire false (oppure 0) se non esiste un valore corrispondente per quelle coordinate. in caso contrario restituire valuex, oppure un hash tipo $val['itemx'] = valuex;

    questo metodo viene chiamato ogni qualvolta posizioni il mouse su una cella della tua ipotetica tabella ( e questo non lo fai con php)

    per iniziare prova a buttare giu il codice di una classe che nel costruttore carica il contenuto del file in un hash

    poi cerchiamo di fare il metodo che effettua il controllo...

    in questo modo si puo vedere di darti una mano, per gradi

    ciao

    Manuel

    View my profile on LinkedIn
    Ubertini: amo solo te!

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    3

    PHP 5 E JAVASCRIPT

    Analisi Progettazione:

    LATO SERVER:
    Si ha una matrice. Bisogna creare un oggetto con i seguenti metodi:
    - lettura
    - modifica
    - scrittura
    - invio dati al client

    LATO CLIENT:
    Si ha un array a 2 dimensioni. Bisogna creare un oggetto con i seguenti metodi:
    - visualizzazione
    - mostra/nascondi item
    - annulla
    - invio al server
    - modifica

    CHI PUO' DARMI UNA MANO NELLA CREAZIONE DI QUESTI OGGETTI?

  7. #7
    ....
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.