• User Attivo

    Prova questa fatta da me, è na funzionona, abb complessa, ma, all'occorrenza, crea cartelle con htaccess ecc..

    dovrebbero esserci degli esempi dentro!!!

    [ATTACH]1335[/ATTACH]


  • User

    Scusami digital daigor ho dato uno sguardo al tuo script e mi è sorta una domanda, ma io devo perforza salvare il file sul server ? Non posso solo leggere il contenuto del file xls e stamparloa video osalvarlo sul db?


  • User Attivo

    si, non puoi leggere un file dal client, x la sicurezza, forse con java puoi, ma nn sono sicuro, l'unico modo è uploddare il file, leggerlo e cancellarlo!


  • Consiglio Direttivo

    Confermo, ho avuto a che fare anch'io con excel e PHP, l'unica è uploadare il file 😉
    Se riesci puoi fare in modo che l'upload sia automatico e che a fine passaggio venga cancellata la copia sul server, ma il file sempre lì deve andare per essere elaborato 😉


  • User

    bene ragazzi sono arrivato a salvare il file dul server,poi stamparloa video ,anche salvarlo nel db e ristamparloa video ed infine a cancellare il file.
    TUTTO FUNZIONA
    lascio ai posteri
    per fare l'upload io ho fatto così
    [PHP]<html>
    <body>
    <form enctype="multipart/form-data" action="/EXCEL/verify_import.php" method="post">
    <input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
    <table width="400">
    <tr>
    <td>URL file:</td>
    <td><input type="file" name="url_file" enctype="multipart/form-data"></td>
    <td><input type="submit" name="upload" value="Carica" /></td>
    </tr>
    </table>
    </form>
    </body>
    </html>
    [/PHP]
    per il resto delle operazioni ho scritto questo
    [PHP]<?php
    include("../config.php");
    //inizio funzione che elemina un singolo file oppure tutti i file di una cartella
    function eliminafiles($dirname){
    if(file_exists($dirname) && is_file($dirname)){
    unlink($dirname);
    }elseif(is_dir($dirname)){
    $handle = opendir($dirname);
    while(false !== ($file = readdir($handle))){
    if(is_file($dirname.$file)){
    unlink($dirname.$file);
    }
    }
    $handle = closedir($handle);
    rmdir($dirname);
    }
    }
    //fine funzione che elemina un singolo file oppure tutti i file di una cartella
    //inizio controllo del corretto caricamento del file e in caso affermativo copia del file su una cartella sul server
    if($_POST[upload]=="Carica" && isset($_FILES['url_file']['tmp_name'])&& (substr($_FILES['url_file']['name'],-4)==".xls")){

    $dir="$_SERVER[DOCUMENT_ROOT]/EXCEL/"; //directory dove andranno i nostri files
    $nome_file=$_FILES['url_file'][name];
    echo "Il tuo file EXCEL si chiama <b>$nome_file</b><br/>";
    // COPIA del FILE SUL SERVER
    //print_r($_FILES);//stampa l'arry associativo di $_FILES

    if(is_uploaded_file($_FILES['url_file']['tmp_name'])){
    move_uploaded_file($_FILES['url_file']['tmp_name'],"$dir/$nome_file") or die("<br/>Impossibile spostare il file<br/>");
    }else{
    die("<br/>Errore nell'upload del file.<br/>");
    }
    //echo"$dir/$nome_file<br/>";
    }
    //fine controllo del corretto caricamento del file
    //inizio della lettura del file excel
    require_once 'E:\cso_manager\Excel\reader.php';
    $data = new Spreadsheet_Excel_Reader();
    $data->setOutputEncoding('CP1251');
    $data->read($nome_file);//indirizzi.xls
    //error_reporting(E_ALL ^ E_NOTICE);
    //inizio della lettura del file excel

    //inizio della stempa a video della tabella
    echo "<table border='1'>";
    for($i = 1; $i <= $data->sheets[0]['numRows']; $i++){
    echo "<tr>";

    for($j = 1; $j <= $data->sheets[0]['numCols']; $j++){
    echo "<td>".$data->sheets[0]['cells']*[$j]."</td>";
    }

    echo "</tr>";
    }
    echo "</table>";/**/
    //fine della stempa a video della tabella
    /*
    //script per caricare i dati sul db
    for ($i = 2; $i <= $data->sheets[0]['numRows']; $i++){
    $nome= "".$data->sheets[0]['cells'][1].""; //nome
    $cognome= "".$data->sheets[0]['cells']
    [2].""; //cognome
    $indirizzo= "".$data->sheets[0]['cells'][3].""; //indirizzo
    $query="insert into indirizzi (nome,cognome,indirizzo)values('$nome','$cognome','$indirizzo')";
    $dati=mssql_query($query);
    if($dati)echo"successo<br/>";
    else echo"fallimento<br/>";
    } /
    /

    //script per leggere i dati dal db e visualizzarli a video
    echo"<TABLE border='1'>";
    echo"<tr><td><b>nome</b></td><td><b>cognome</b></td><td><b>indirizzo</b></td></tr>";
    $dati=mssql_query("select * from indirizzi");
    $NumEntries=mssql_num_rows($dati);
    while($array=mssql_fetch_array($dati)){
    echo"<tr><td>$array[nome]</td><td>$array[cognome]</td><td>$array[indirizzo]</td></tr>";
    }
    echo"</TABLE>";
    /
    eliminafiles("$dir/$nome_file");//richiama la funzione eliminafiles ed elimina il singolo file caricato
    mssql_close($link);
    ?>[/PHP]


  • Consiglio Direttivo

    Grandioso pizzet 😄
    grazie 😉


  • User

    preciso che questo nuovo approccio non è rivoluzionario per tutti ma riguarda solo le mie limitate competenze nei confronti del javascipt.
    Ho letto in giro e stò approfondendo le mie conoscenze con ajax ma prima ho voluto provare a fare una select dinamica che si popolasse tramite un db utilizzando una semplice funzione in js e il resto è affidato al php.
    Ora il codice funziona ma non come vorrei.
    Premetto che la prima select mi sceglie l'operazione, scelta questa mi compare una seconda select con la lista dei "servizi", dopodichè scelto il servizio si va alla lista delle "aree", così procedendo anche per gli "ambiti", "sottoambiti" ed infine le "macroattività".

    [php]
    <?php
    include ("config.php");
    include ("user.php");
    ?>
    <?php
    if (isset ($_POST['ordine']))
    $ordine = $_POST['ordine'];
    else
    $ordine = "0";
    ?>
    <?php
    if (isset ($_POST['servizi']))
    $servizi = $_POST['servizi'];
    else
    $servizi = "0";
    //echo "$servizi<br/>";
    ?>
    <?php
    if (isset ($_POST['aree']))
    $aree = $_POST['aree'];
    else
    $aree = "0";
    //echo "$aree<br/>";
    ?>
    <?php
    if (isset ($_POST['aop']))
    $aop = $_POST['aop'];
    else
    $aop = "0";
    //echo "$aop<br/>";
    ?>
    <?php
    if (isset ($_POST['sotta']))
    $sotta = $_POST['sotta'];
    else
    $sotta = "0";
    //echo "$sotta<br/>";
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Select dinamica CSO</title>
    <script type="text/javascript">
    <!--
    function invia()
    {
    document.form1.submit();
    }
    //-->
    </script>
    </head>
    <body>
    <form name="form1" action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
    <p>
    <select name="ordine" onchange="invia()">
    <option value="0"<?php echo ($ordine == "0" ? " selected="selected"" : ""); ?>>----- seleziona -----</option>
    <option value="1"<?php echo ($ordine == "1" ? " selected="selected"" : ""); ?>>Servizi</option>
    <!--<option value="2"<?php echo ($ordine == "2" ? " selected="selected"" : ""); ?>>Attrici per cognome</option>-->
    </select>
    </p>
    <?php if ($ordine == "1") { ?>
    <p>
    <?php
    $sql_servizi="SELECT ID_SERV, N_SERV FROM t_serv ORDER BY ORD";

    $result_mssql_servizi=@mssql_query($sql_servizi,$link);

    if(!$result_mssql_servizi) {
    exit('<p>Errore! Non sono presenti servizi nel database!<br/>' .
    'Error: ' . mssql_error() . '</p>');
    }
    $opt_servizi="<option value='0' $servizi == '0' ? ' selected='selected'' : ''>----- seleziona -----</option>";
    while($result_servizi=mssql_fetch_array($result_mssql_servizi)){
    $ids_serv = $result_servizi ["ID_SERV"];//sigla
    $n_serv=$result_servizi ["N_SERV"];//nome per esteso
    $opt_servizi.="<option value='$ids_serv'>$n_serv</option>";
    }
    ?>
    SERVIZI <select name="servizi" onchange="invia()">
    <?php echo "$opt_servizi";?>
    </select>
    </p>

    <?php } ?>
    <?php if ($servizi != "0") { ?>
    <p>
    <?php
    $sql_aree="SELECT * FROM tl_serv_aree INNER JOIN t_aree ON tl_serv_aree.ID_AREA=t_aree.ID_AREA WHERE ID_SERV='$servizi' ORDER BY ORD";

    $result_mssql_aree=@mssql_query($sql_aree,$link);

    if(!$result_mssql_aree) {
    exit('<p>Errore! Non sono presenti servizi nel database!<br/>' .
    'Error: ' . mssql_error() . '</p>');
    }
    $opt_aree="<option value='0' ($aree == '0' ? ' selected='selected'' : '')>----- seleziona -----</option>";
    while($result_aree=mssql_fetch_array($result_mssql_aree)){
    $ids_area = $result_aree ["ID_AREA"];//sigla
    $n_area=$result_aree ["N_AREA"];//nome per esteso
    $opt_aree.="<option value='$ids_area'>$n_area</option>";
    }
    ?>
    AREE <select name="aree" onchange="invia()">
    <?php echo "$opt_aree";?>
    </select>
    </p>

    <?php } ?>
    <?php if ($aree != "0") { ?>
    <p>
    <?php
    $sql_aop="SELECT * FROM tl_aree_a_op INNER JOIN t_a_op ON tl_aree_a_op.ID_A_OP=t_a_op.ID_A_OP WHERE ID_AREA='$aree' ORDER BY ORD";

    $result_mssql_aop=@mssql_query($sql_aop,$link);

    if(!$result_mssql_aop) {
    exit('<p>Errore! Non sono presenti servizi nel database!<br/>' .
    'Error: ' . mssql_error() . '</p>');
    }
    $opt_aop="<option value='0' ($aop == '0' ? ' selected='selected'' : '')>----- seleziona -----</option>";
    while($result_aop=mssql_fetch_array($result_mssql_aop)){
    $id_aop = $result_aop ["ID_A_OP"];//numero univoco
    $ids_aop = $result_aop ["S_A_OP"];//sigla
    $n_aop=$result_aop ["N_A_OP"];//nome per esteso
    $opt_aop.="<option value='$id_aop'>$n_aop</option>";
    }
    ?>
    AMBITI OPERATIVI <select name="aop" onchange="invia()">
    <?php echo "$opt_aop";?>
    </select>
    </p>

    <?php } ?>
    <?php if ($aop != "0") { ?>
    <p>
    <?php
    $sql_sotta="SELECT * FROM tl_a_op_sott_a INNER JOIN t_sott_a ON tl_a_op_sott_a.ID_SOTT_A=t_sott_a.ID_SOTT_A WHERE ID_A_OP='$aop' ORDER BY ORD";

    $result_mssql_sotta=@mssql_query($sql_sotta,$link);

    if(!$result_mssql_sotta) {
    exit('<p>Errore! Non sono presenti servizi nel database!<br/>' .
    'Error: ' . mssql_error() . '</p>');
    }
    $opt_sotta="<option value='0' ($sotta == '0' ? ' selected='selected'' : '')>----- seleziona -----</option>";
    while($result_sotta=mssql_fetch_array($result_mssql_sotta)){
    $id_sotta = $result_sotta ["ID_SOTT_A"];//numero univoco
    $ids_sotta = $result_sotta ["S_SOTT_A"];//sigla
    $n_sotta=$result_sotta ["N_SOTT_A"];//nome per esteso
    $opt_sotta.="<option value='$id_sotta'>$n_sotta</option>";
    }
    ?>
    SOTTAMBITI OPERATIVI <select name="sotta" onchange="invia()">
    <?php echo "$opt_sotta";?>
    </select>
    </p>

    <?php } ?>
    <?php if ($sotta != "0") { ?>
    <p>
    <?php
    $sql_matt="SELECT * FROM tl_sott_a_m_att_proc INNER JOIN t_m_att ON tl_sott_a_m_att_proc.ID_M_ATT=t_m_att.ID_M_ATT WHERE ID_SOTT_A='$sotta' ORDER BY ORD";

    $result_mssql_matt=@mssql_query($sql_matt,$link);

    if(!$result_mssql_matt) {
    exit('<p>Errore! Non sono presenti servizi nel database!<br/>' .
    'Error: ' . mssql_error() . '</p>');
    }
    $opt_sotta="<option value='0' ($sotta == '0' ? ' selected='selected'' : '')>----- seleziona -----</option>";
    while($result_matt=mssql_fetch_array($result_mssql_matt)){
    $id_matt = $result_matt ["ID_M_ATT"];//numero univoco
    $ids_matt = $result_matt ["S_M_ATT"];//sigla
    $n_matt=$result_matt ["N_M_ATT"];//nome per esteso
    $opt_matt.="<option value='$id_matt'>$n_matt</option>";
    }
    ?>
    MACROATTIVITA' <select name="matt" onchange="">
    <?php echo "$opt_matt";?>
    </select>
    </p>

    <?php } ?>
    <p>
    <input type="submit" value="INVIA">
    </p>
    </form>
    <?php mssql_close($link); ?>
    </body>
    </html>
    [/php]

    Ora i miei problemi sono:
    -il codice visivamente funziona fino alla scelta delle aree dopodichè dopo aver scelto l'area la select di queste viene sostituita con la nuovqa select degli ambiti e così via sino alle macroattività.
    COSA SBAGLIO?????
    -vorrei mantenere visivamente selezionato i campi scelti precedentemente nelle rispettive select

    Mi date una mano please


  • User

    lo posto perchè può essere sempre utile.
    Era una cavolata infatti entrambi gli errori erano dovuti alla mancanza della selezione delle voci nelle singole select.
    [PHP]
    <?php
    include ("config.php");
    include ("user.php");
    ?>
    <?php
    if (isset ($_POST['ordine']))
    $ordine = $_POST['ordine'];
    else
    $ordine = "0";
    ?>
    <?php
    if (isset ($_POST['servizi']))
    $servizi = $_POST['servizi'];
    else
    $servizi = "0";
    //echo "$servizi<br/>";
    ?>
    <?php
    if (isset ($_POST['aree']))
    $aree = $_POST['aree'];
    else
    $aree = "0";
    //echo "$aree<br/>";
    ?>
    <?php
    if (isset ($_POST['aop']))
    $aop = $_POST['aop'];
    else
    $aop = "0";
    //echo "$aop<br/>";
    ?>
    <?php
    if (isset ($_POST['sotta']))
    $sotta = $_POST['sotta'];
    else
    $sotta = "0";
    //echo "$sotta<br/>";
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Select dinamica CSO</title>
    <script type="text/javascript">
    <!--
    function invia()
    {
    document.form1.submit();
    }
    //-->
    </script>
    </head>
    <body>
    <form name="form1" action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
    <p>
    <select name="ordine" onchange="invia()">
    <option value="0"<?php echo ($ordine == "0" ? " selected="selected"" : ""); ?>>----- seleziona -----</option>
    <option value="1"<?php echo ($ordine == "1" ? " style='background-color:#EEEEEE' selected="selected"" : ""); ?>>Servizi</option>
    <!--<option value="2"<?php echo ($ordine == "2" ? " selected="selected"" : ""); ?>>Attrici per cognome</option>-->
    </select>
    </p>
    <?php if ($ordine == "1") { ?>
    <p>
    <?php
    $sql_servizi="SELECT ID_SERV, N_SERV FROM t_serv ORDER BY ORD";

    $result_mssql_servizi=@mssql_query($sql_servizi,$link);

    if(!$result_mssql_servizi) {
    exit('<p>Errore! Non sono presenti servizi nel database!<br/>' .
    'Error: ' . mssql_error() . '</p>');
    }
    $opt_servizi="<option value='0' ($servizi == '0' ? ' selected='selected'' : '')>----- seleziona -----</option>";
    while($result_servizi=mssql_fetch_array($result_mssql_servizi)){
    $ids_serv = $result_servizi ["ID_SERV"];//sigla
    $n_serv=$result_servizi ["N_SERV"];//nome per esteso
    $opt_servizi.="<option value='$ids_serv' ".($servizi == $ids_serv ? ' selected='selected'' : '').">$n_serv</option>";
    }
    ?>
    SERVIZI <select name="servizi" onchange="invia()">
    <?php echo "$opt_servizi";?>
    </select>
    </p>

    <?php } ?>
    <?php if ($servizi != "0") { ?>
    <p>
    <?php
    $sql_aree="SELECT * FROM tl_serv_aree INNER JOIN t_aree ON tl_serv_aree.ID_AREA=t_aree.ID_AREA WHERE ID_SERV='$servizi' ORDER BY ORD";

    $result_mssql_aree=@mssql_query($sql_aree,$link);

    if(!$result_mssql_aree) {
    exit('<p>Errore! Non sono presenti servizi nel database!<br/>' .
    'Error: ' . mssql_error() . '</p>');
    }
    $opt_aree="<option value='0' ($aree == '0' ? ' selected='selected'' : '')>----- seleziona -----</option>";
    while($result_aree=mssql_fetch_array($result_mssql_aree)){
    $ids_area = $result_aree ["ID_AREA"];//sigla
    $n_area=$result_aree ["N_AREA"];//nome per esteso
    $opt_aree.="<option value='$ids_area' ".($aree == $ids_area ? ' selected='selected'' : '').">$n_area</option>";
    }
    ?>
    AREE <select name="aree" onchange="invia()">
    <?php echo "$opt_aree";?>
    </select>
    </p>

    <?php } ?>
    <?php if ($aree != "0") { ?>
    <p>
    <?php
    $sql_aop="SELECT * FROM tl_aree_a_op INNER JOIN t_a_op ON tl_aree_a_op.ID_A_OP=t_a_op.ID_A_OP WHERE ID_AREA='$aree' ORDER BY ORD";

    $result_mssql_aop=@mssql_query($sql_aop,$link);

    if(!$result_mssql_aop) {
    exit('<p>Errore! Non sono presenti servizi nel database!<br/>' .
    'Error: ' . mssql_error() . '</p>');
    }
    $opt_aop="<option value='0' ($aop == '0' ? ' selected='selected'' : '')>----- seleziona -----</option>";
    while($result_aop=mssql_fetch_array($result_mssql_aop)){
    $id_aop = $result_aop ["ID_A_OP"];//numero univoco
    $ids_aop = $result_aop ["S_A_OP"];//sigla
    $n_aop=$result_aop ["N_A_OP"];//nome per esteso
    $opt_aop.="<option value='$id_aop' ".($aop == $id_aop ? ' selected='selected'' : '').">$n_aop</option>";
    }
    ?>
    AMBITI OPERATIVI <select name="aop" onchange="invia()">
    <?php echo "$opt_aop";?>
    </select>
    </p>

    <?php } ?>
    <?php if ($aop != "0") { ?>
    <p>
    <?php
    $sql_sotta="SELECT * FROM tl_a_op_sott_a INNER JOIN t_sott_a ON tl_a_op_sott_a.ID_SOTT_A=t_sott_a.ID_SOTT_A WHERE ID_A_OP='$aop' ORDER BY ORD";

    $result_mssql_sotta=@mssql_query($sql_sotta,$link);

    if(!$result_mssql_sotta) {
    exit('<p>Errore! Non sono presenti servizi nel database!<br/>' .
    'Error: ' . mssql_error() . '</p>');
    }
    $opt_sotta="<option value='0' ($sotta == '0' ? ' selected='selected'' : '')>----- seleziona -----</option>";
    while($result_sotta=mssql_fetch_array($result_mssql_sotta)){
    $id_sotta = $result_sotta ["ID_SOTT_A"];//numero univoco
    $ids_sotta = $result_sotta ["S_SOTT_A"];//sigla
    $n_sotta=$result_sotta ["N_SOTT_A"];//nome per esteso
    $opt_sotta.="<option value='$id_sotta' ".($sotta == $id_sotta ? ' selected='selected'' : '').">$n_sotta</option>";
    }
    ?>
    SOTTAMBITI OPERATIVI <select name="sotta" onchange="invia()">
    <?php echo "$opt_sotta";?>
    </select>
    </p>

    <?php } ?>
    <?php if ($sotta != "0") { ?>
    <p>
    <?php
    $sql_matt="SELECT * FROM tl_sott_a_m_att_proc INNER JOIN t_m_att ON tl_sott_a_m_att_proc.ID_M_ATT=t_m_att.ID_M_ATT WHERE ID_SOTT_A='$sotta' ORDER BY ORD";

    $result_mssql_matt=@mssql_query($sql_matt,$link);

    if(!$result_mssql_matt) {
    exit('<p>Errore! Non sono presenti servizi nel database!<br/>' .
    'Error: ' . mssql_error() . '</p>');
    }
    $opt_sotta="<option value='0' ($matt == '0' ? ' selected='selected'' : '')>----- seleziona -----</option>";
    while($result_matt=mssql_fetch_array($result_mssql_matt)){
    $id_matt = $result_matt ["ID_M_ATT"];//numero univoco
    $ids_matt = $result_matt ["S_M_ATT"];//sigla
    $n_matt=$result_matt ["N_M_ATT"];//nome per esteso
    $opt_matt.="<option value='$id_matt' ".($matt == $id_matt ? ' selected='selected'' : '').">$n_matt</option>";
    }
    ?>
    MACROATTIVITA' <select name="matt" onchange="">
    <?php echo "$opt_matt";?>
    </select>
    </p>

    <?php } ?>
    <p>
    <input type="submit" value="INVIA">
    </p>
    </form>
    <?php mssql_close($link); ?>
    </body>
    </html>
    [/PHP]


  • User

    scusate ancora ma qualcuno mi aiuta a creare dal codice sopra postato come fare una funzione in javascript dove se richiamata mi resetta dinamicamente le select.
    Mi spiego meglio mettiamo che io faccia tutte le scelte e quindi mi vengano visualizzate tutte le scelte dinamiche (operazione>servizio>area>ambito>sottoambito>macroattività) ma ad un certo punto io decidessi di selezionare un nuovo servizio dall'elenco allora io vorrei avere la nuova scelta delle aree e far sparire le vecchie select degli ambiti, sottoambiti e macroattività.
    Come posso fare????????????


  • Consiglio Direttivo

    Se vuoi un Js troverai più risposte nell'area adatta 😉


  • User

    lo so ma io cerco una soluzione su questo codice ed ho pensato che il js fosse una soluzione ma sono aperto sempre a nuove soluzioni.
    Qualche idea?????


  • Consiglio Direttivo

    e se ai vari select assegni la propria categoria e la categoria superiore? così i successivi saranno blank?


  • User

    forse ho capito ma puoi farmi un esempio di codice?


  • Consiglio Direttivo

    dovresti un po sconvolgere lo script, ovvero, invece di inviare 0,1,2 o altro....
    il value del select dovrebbe riportare il proprio valore e la categoria (o le categorie) del livello/i superiore/i
    del tipo (metti di dover variare l'area):
    value="x,y,z,0,0"
    dove x è l'operazione selezionata
    y il servizio
    z l'area nuova da selezionare
    i successivi sarano ovviamente blank 😉

    postati i dati li scomponi e ricostruisci i tuoi select 😉 lasciando blank quelli successivi 😉


  • User

    ho seguito il tuo consiglio cioè ho utilizzato il value="$ordine,$servizi,$aree,$aop,$sotta,$matt" passando in base alla scelta della select i valori corrispondenti cioè non da visualizzare uguale a zero ed ho creato le guardie che con la funzione explode della variabile passata dal form mi associasse ogni singolo valore alle variabili $servizio, $area, ... ma non mi funziona ancora come volevo.


  • Consiglio Direttivo

    ah, scusami nel passaggio precedente mi son scordato un pezzo 😄

    ovviamente in quel caso i select successivi (aop nello specifico, utilizzerà come variabili della query i valori passati....)
    nel caso dettaglia cosa accade (o cosa non accade) che vediamo di risolvere 😉


  • User

    scusate ma il mio javascript è un po' scarso quindi vi chiedo se è possibile tramite il tasto reset riazzerare o per lo meno cambiare il valore di una variabile php (esempio $aop=0; tramite una istruzione di una funzione js)


  • User

    io ho fatto una cosa del genere ma l'errore che riscontro è che una volta fatta la discesa di tutte le select non riesco più aselezionare un diverso percorso quindi se cambiassi per esempio la voce nella select delle aree le select sottostanti non scompariscono.
    [PHP]
    <link href="stile.css" rel="stylesheet" type="text/css" />
    <?php
    include ("config.php");
    include ("user.php");
    include ("basetop.php");
    ?>
    <?php
    if (isset ($_POST['ordine'])){
    $str = $_POST['ordine'];
    $var = explode(',',$str);

    $ordine = $var[0];
    $servizi = "0";
    $aree = "0";
    $aop = "0";
    $sotta = "0";
    $matt = "0";
    }else{
    $ordine = "0";
    $servizi = "0";
    $aree = "0";
    $aop = "0";
    $sotta = "0";
    $matt = "0";
    }

    if (isset ($_POST['servizi'])){
    $str = $_POST['servizi'];
    $var = explode(',',$str);

    $ordine = $var[0];
    $servizi = $var[1];
    $aree = "0";
    $aop = "0";
    $sotta = "0";
    $matt = "0";
    }else{
    $servizi = "0";
    $aree = "0";
    $aop = "0";
    $sotta = "0";
    $matt = "0";
    }

    if (isset ($_POST['aree'])){
    $str = $_POST['aree'];
    $var = explode(',',$str);

    $ordine = $var[0];
    $servizi = $var[1];
    $aree = $var[2];
    $aop = "0";
    $sotta = "0";
    $matt = "0";
    }else{
    $aree = "0";
    $aop = "0";
    $sotta = "0";
    $matt = "0";
    }

    if (isset ($_POST['aop'])){
    $str = $_POST['aop'];
    $var = explode(',',$str);

    $ordine = $var[0];
    $servizi = $var[1];
    $aree = $var[2];
    $aop = $var[3];
    $sotta = "0";
    $matt = "0";
    }else{
    $aop = "0";
    $sotta = "0";
    $matt = "0";
    }

    if (isset ($_POST['sotta'])){
    $str = $_POST['sotta'];
    $var = explode(',',$str);

    $ordine = $var[0];
    $servizi = $var[1];
    $aree = $var[2];
    $aop = $var[3];
    $sotta = $var[4];
    $matt = "0";
    }else{
    $sotta = "0";
    $matt = "0";
    }

    if (isset ($_POST['matt'])){
    $str = $_POST['matt'];
    $var = explode(',',$str);

    $ordine = $var[0];
    $servizi = $var[1];
    $aree = $var[2];
    $aop = $var[3];
    $sotta = $var[4];
    $matt = $var[5];
    }else{
    $matt = "0";
    }
    ?>
    <?php /*?><?php
    if (isset ($_POST['ordine']))
    $ordine = $_POST['ordine'];
    else
    $ordine = "0";
    if (isset ($_POST['servizi']))
    $servizi = $_POST['servizi'];
    else
    $servizi = "0";
    //echo "$servizi<br/>";
    if (isset ($_POST['aree']))
    $aree = $_POST['aree'];
    else
    $aree = "0";
    //echo "$aree<br/>";
    if (isset ($_POST['aop']))
    $aop = $_POST['aop'];
    else
    $aop = "0";
    //echo "$aop<br/>";
    if (isset ($_POST['sotta']))
    $sotta = $_POST['sotta'];
    else
    $sotta = "0";
    //echo "$sotta<br/>";
    ?><?php */?>
    <?php
    if (isset ($_POST['kpi_servizi']))
    $kpi_servizi = $_POST['kpi_servizi'];
    else
    $kpi_servizi = "0";
    //echo "$kpi_servizi<br/>";
    if (isset ($_POST['kpi_aree']))
    $kpi_aree = $_POST['kpi_aree'];
    else
    $kpi_aree = "0";
    //echo "$kpi_aree<br/>";
    ?>

    <script type="text/javascript">
    <!--
    function invia()
    {
    document.form1.submit();
    }

    function resetta()
    {
    document.form1.ordine.value=0;
    document.form1.servizi.value=0;
    document.form1.aree.value=0;
    document.form1.aop.value=0;
    document.form1.sotta.value=0;
    document.form1.matt.value=0;
    document.form1.kpi_servizi.value=0;
    document.form1.kpi_aree.value=0;
    document.form1.submit();
    }

    function submit_racc_dati()
    {
    var check;
    check="true";
    if(check=="true"){
    if((document.form1.ordine.value=="----- seleziona -----")||(document.form1.servizi.value=="----- seleziona -----")||
    (document.form1.aree.value=="----- seleziona -----")||(document.form1.aop.value=="----- seleziona -----")||
    (document.form1.sotta.value=="----- seleziona -----")||(document.form1.matt.value=="----- seleziona -----")){
    alert("Tutti i campi devono essere selezionati!");
    check="false";
    }
    }
    if(check=="true"){
    document.form1.action="racc_dati.php";
    document.form1.submit();
    }
    }

    function submit_kpi_aop()
    {
    var check;
    check="true";
    if(check=="true"){
    if((document.form1.ordine.value=="----- seleziona -----")||(document.form1.kpi_servizi.value=="----- seleziona -----")||
    (document.form1.kpi_aree.value=="----- seleziona -----")){
    alert("Tutti i campi devono essere selezionati!");
    check="false";
    }
    }
    if(check=="true"){
    document.form1.action="kpi_aop.php";
    document.form1.submit();
    }
    }
    //-->
    </script>

    <div class="box_top"><br/>
    <div class="box_top_botton">
    </div>
    <div class="box_top_title">
    </div>
    <div class="box_top_report">
    </div>
    <div class="box_date">
    <b><?php
    $giorni = array("Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato");
    $mesi = array("Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre","Novembre", "Dicembre");

    $numero_giorno_settimana = date("w");
    $nome_giorno = $giorni[$numero_giorno_settimana];
    $numero_giorno_mese = date("j");
    $numero_mese= date("n");
    $numero_mese--;
    $nome_mese = $mesi[$numero_mese];
    $numero_anno = date("Y");
    $ore = date("G");
    $minuti = date("i");
    //$secondi = date("s");

    echo "$nome_giorno $numero_giorno_mese $nome_mese $numero_anno";
    ?></b>
    </div>
    <div class="box_top_login">
    <a href="login_page.php" title="Amministrazione" style='color: #666666; margin-right:10px;'> <b>Amministrazione</b></a>
    </div>
    </div>
    <div class="box_select">
    <div class="box_select_title">
    <b>Coordinamento Servizi Operativi</b>
    </div>
    <div class="box_select_activity">
    <table>
    <form name="form1" action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
    <input type="hidden" name="rst" value="1" />
    <p><tr>
    <td>OPERAZIONE</td><td><select name="ordine" onchange="invia()">
    <option value="<?php echo '0,0,0,0,0,0';?>"<?php echo ($ordine == "0" ? " selected="selected"" : ""); ?>>----- seleziona -----</option>
    <option value="<?php echo '1,0,0,0,0,0';?>"<?php echo ($ordine == "1" ? " style='background-color:#999999' selected="selected"" : ""); ?>>Raccolta dati</option>
    <option value="<?php echo '2,0,0,0,0,0';?>"<?php echo ($ordine == "2" ? " style='background-color:#999999' selected="selected"" : ""); ?>>Indicatoti (KPI)</option>
    <option value="<?php echo '3,0,0,0,0,0';?>"<?php echo ($ordine == "3" ? " style='background-color:#999999' selected="selected"" : ""); ?>>Verifica esecuzione controlli</option>
    </select></td>
    </p></tr>

    <!-- INIZIO discesa dell'albero -->
    <?php if ($ordine == "1") { ?>
    <p><tr>
    <?php
    $sql_servizi="SELECT ID_SERV, N_SERV FROM t_serv ORDER BY ORD";

    $result_mssql_servizi=@mssql_query($sql_servizi,$link);

    if(!$result_mssql_servizi) {
    exit('<p>Errore! Non sono presenti servizi nel database!<br/>' .
    'Error: ' . mssql_error() . '</p>');
    }
    $opt_servizi="<option value='1,0,0,0,0,0' ($servizi == '0' ? ' selected='selected'' : '')>----- seleziona -----</option>";
    while($result_servizi=mssql_fetch_array($result_mssql_servizi)){
    $ids_serv = $result_servizi ["ID_SERV"];//sigla
    $n_serv=$result_servizi ["N_SERV"];//nome per esteso
    $opt_servizi.="<option value='1,$ids_serv,0,0,0,0' ".($servizi == $ids_serv ? ' style="background-color:#999999" selected='selected'' : '').">$n_serv</option>";
    }
    ?>
    <td>SERVIZI</td><td><select name="servizi" onchange="invia()">
    <?php echo "$opt_servizi";?>
    </select></td>
    </p></tr>
    <?php } ?>
    <?php if ($servizi != "0") { ?>
    <p><tr>
    <?php
    $sql_aree="SELECT * FROM tl_serv_aree INNER JOIN t_aree ON tl_serv_aree.ID_AREA=t_aree.ID_AREA WHERE ID_SERV='$servizi' ORDER BY ORD";

    $result_mssql_aree=@mssql_query($sql_aree,$link);

    if(!$result_mssql_aree) {
    exit('<p>Errore! Non sono presenti servizi nel database!<br/>' .
    'Error: ' . mssql_error() . '</p>');
    }
    $opt_aree="<option value='1,$ids_serv,0,0,0,0' ($aree == '0' ? ' selected='selected'' : '')>----- seleziona -----</option>";
    while($result_aree=mssql_fetch_array($result_mssql_aree)){
    $ids_area = $result_aree ["ID_AREA"];//sigla
    $n_area=$result_aree ["N_AREA"];//nome per esteso
    $opt_aree.="<option value='1,$ids_serv,$ids_area,0,0,0' ".($aree == $ids_area ? ' style="background-color:#999999" selected='selected'' : '').">$n_area</option>";
    }
    ?>
    <td>AREE</td><td><select name="aree" onchange="invia()">
    <?php echo "$opt_aree";?>
    </select></td>
    </p></tr>

    <?php } ?>
    <?php if ($aree != "0") { ?>
    <p><tr>
    <?php
    $sql_aop="SELECT * FROM tl_aree_a_op INNER JOIN t_a_op ON tl_aree_a_op.ID_A_OP=t_a_op.ID_A_OP WHERE ID_AREA='$aree' ORDER BY ORD";

    $result_mssql_aop=@mssql_query($sql_aop,$link);

    if(!$result_mssql_aop) {
    exit('<p>Errore! Non sono presenti servizi nel database!<br/>' .
    'Error: ' . mssql_error() . '</p>');
    }
    $opt_aop="<option value='1,$ids_serv,$ids_area,0,0,0' ($aop == '0' ? ' selected='selected'' : '')>----- seleziona -----</option>";
    while($result_aop=mssql_fetch_array($result_mssql_aop)){
    $id_aop = $result_aop ["ID_A_OP"];//numero univoco
    $ids_aop = $result_aop ["S_A_OP"];//sigla
    $n_aop=$result_aop ["N_A_OP"];//nome per esteso
    $opt_aop.="<option value='1,$ids_serv,$ids_area,$id_aop,0,0' ".($aop == $id_aop ? ' style="background-color:#999999" selected='selected'' : '').">$n_aop</option>";
    }
    ?>
    <td>AMBITI OPERATIVI</td><td><select name="aop" onchange="invia()">
    <?php echo "$opt_aop";?>
    </select></td>
    </p></tr>

    <?php } ?>
    <?php if ($aop != "0") { ?>
    <p><tr>
    <?php
    $sql_sotta="SELECT * FROM tl_a_op_sott_a INNER JOIN t_sott_a ON tl_a_op_sott_a.ID_SOTT_A=t_sott_a.ID_SOTT_A WHERE ID_A_OP='$aop' ORDER BY ORD";

    $result_mssql_sotta=@mssql_query($sql_sotta,$link);

    if(!$result_mssql_sotta) {
    exit('<p>Errore! Non sono presenti servizi nel database!<br/>' .
    'Error: ' . mssql_error() . '</p>');
    }
    $opt_sotta="<option value='1,$ids_serv,$ids_area,$id_aop,0,0' ($sotta == '0' ? ' selected='selected'' : '')>----- seleziona -----</option>";
    while($result_sotta=mssql_fetch_array($result_mssql_sotta)){
    $id_sotta = $result_sotta ["ID_SOTT_A"];//numero univoco
    $ids_sotta = $result_sotta ["S_SOTT_A"];//sigla
    $n_sotta=$result_sotta ["N_SOTT_A"];//nome per esteso
    $opt_sotta.="<option value='1,$ids_serv,$ids_area,$id_aop,$id_sotta,0' ".($sotta == $id_sotta ? ' style="background-color:#999999" selected='selected'' : '').">$n_sotta</option>";
    }
    ?>
    <td>SOTTAMBITI OPERATIVI</td><td><select name="sotta" onchange="invia()">
    <?php echo "$opt_sotta";?>
    </select></td>
    </p></tr>

    <?php } ?>
    <?php if ($sotta != "0") { ?>
    <p><tr>
    <?php
    $sql_matt="SELECT * FROM tl_sott_a_m_att_proc INNER JOIN t_m_att ON tl_sott_a_m_att_proc.ID_M_ATT=t_m_att.ID_M_ATT WHERE ID_SOTT_A='$sotta' ORDER BY ORD";

    $result_mssql_matt=@mssql_query($sql_matt,$link);

    if(!$result_mssql_matt) {
    exit('<p>Errore! Non sono presenti servizi nel database!<br/>' .
    'Error: ' . mssql_error() . '</p>');
    }
    $opt_sotta="<option value='1,$ids_serv,$ids_area,$id_aop,$id_sotta,0' ($matt == '0' ? ' selected='selected'' : '')>----- seleziona -----</option>";
    while($result_matt=mssql_fetch_array($result_mssql_matt)){
    $id_matt = $result_matt ["ID_M_ATT"];//numero univoco
    $ids_matt = $result_matt ["S_M_ATT"];//sigla
    $n_matt=$result_matt ["N_M_ATT"];//nome per esteso
    $opt_matt.="<option value='1,$ids_serv,$ids_area,$id_aop,$id_sotta,$id_matt' ".($matt == $id_matt ? ' style="background-color:#999999" selected='selected'' : '').">$n_matt</option>";
    }
    ?>
    <td>MACROATTIVITA'</td><td><select name="matt" onchange="">
    <?php echo "$opt_matt";?>
    </select></td>
    </p></tr>

    <p><tr><td>
    <input type="button" value="CONFERMA" onClick="javascript: submit_racc_dati();">
    <!--<input type="submit" value="INVIA">--></td><td></td>
    </p></tr>

    <?php } ?>
    <!-- FINE discesa dell'albero -->

    <!-- INIZIO discesa KPI -->
    <?php if ($ordine == "2") { ?>
    <p><tr>
    <?php
    $sql_servizi="SELECT ID_SERV, N_SERV FROM t_serv ORDER BY ORD";

    $result_mssql_servizi=@mssql_query($sql_servizi,$link);

    if(!$result_mssql_servizi) {
    exit('<p>Errore! Non sono presenti servizi nel database!<br/>' .
    'Error: ' . mssql_error() . '</p>');
    }
    $opt_servizi="<option value='0' ($kpi_servizi == '0' ? ' selected='selected'' : '')>----- seleziona -----</option>";
    while($result_servizi=mssql_fetch_array($result_mssql_servizi)){
    $ids_serv = $result_servizi ["ID_SERV"];//sigla
    $n_serv=$result_servizi ["N_SERV"];//nome per esteso
    $opt_servizi.="<option value='$ids_serv' ".($kpi_servizi == $ids_serv ? ' style="background-color:#999999" selected='selected'' : '').">$n_serv</option>";
    }
    ?>
    <td>KPI SERVIZI</td><td><select name="kpi_servizi" onchange="invia()">
    <?php echo "$opt_servizi";?>
    </select></td>
    </p></tr>

    <?php } ?>

    <?php if ($kpi_servizi != "0") { ?>
    <p><tr>
    <?php
    $sql_aree="SELECT * FROM tl_serv_aree INNER JOIN t_aree ON tl_serv_aree.ID_AREA=t_aree.ID_AREA WHERE ID_SERV='$kpi_servizi' ORDER BY ORD";

    $result_mssql_aree=@mssql_query($sql_aree,$link);

    if(!$result_mssql_aree) {
    exit('<p>Errore! Non sono presenti servizi nel database!<br/>' .
    'Error: ' . mssql_error() . '</p>');
    }
    $opt_aree="<option value='0' ($kpi_aree == '0' ? ' selected='selected'' : '')>----- seleziona -----</option>";
    while($result_aree=mssql_fetch_array($result_mssql_aree)){
    $ids_area = $result_aree ["ID_AREA"];//sigla
    $n_area=$result_aree ["N_AREA"];//nome per esteso
    $opt_aree.="<option value='$ids_area' ".($kpi_aree == $ids_area ? ' style="background-color:#999999" selected='selected'' : '').">$n_area</option>";
    }
    ?>
    <td>KPI AREE</td><td><select name="kpi_aree" onchange="invia()">
    <?php echo "$opt_aree";?>
    </select></td>
    </p></tr>

    <?php } ?>
    <?php if ($kpi_aree != "0") { ?>

    <p><tr><td>
    <input type="button" value="CONFERMA" onClick="javascript: submit_kpi_aop();">
    <!--<input type="submit" value="INVIA">--></td><td></td>
    </p></tr>

    <?php } ?>
    <!-- FINE discesa KPI -->
    <p><tr><td>
    <input type="button" value="RESET" onClick="javascript: resetta();">
    <!--<input type="button" value="CONFERMA" onClick="javascript: submit_finale();">-->
    <!--<input type="submit" value="INVIA">--></td><td></td>
    </p></tr>
    </form></table>
    <?php mssql_close($link); ?>
    </div>
    </div>

    [/PHP]

    chi mi aiuta non saprei cosa fare?❌x:x


  • User

    Bene ho deciso di cambiare il lavoro fatto in qualcosa di più standardizzato ed orientato all'utente finale.
    Ho deciso di fare un form dove in base alle scelte dell'utente si filtrano delle select e compaiono campi nuovi da avvalorare.
    Proprio a questo proposito (campi a comaprsa) ho un problemino nel senso che di solito funziona nella pagina ma... vi posto prima il codice
    [PHP]
    /INIZIO CODICE in javascript PER VISUALIZZAZIONE CAMPI NASCOSTI con checkbox/
    function MostraCampi(obj, a){
    var e=document.getElementById(a);
    var ck=(obj.checked)?"block":"none";
    e.style.display=ck;
    }/**/
    /FINE CODICE PER VISUALIZZAZIONE CAMPI NASCOSTI/

    <?php if($db_errore_operativo!=NULL or $db_numero_pezzi_errore_operativo!=NULL or $db_kpi_errore_operativo!=NULL or $db_numero_pezzi_kpi_errore_operativo!=NULL or $db_gravita_errore_operativo!=NULL){?>
    <div id="errore_operativo">
    <tr><td style="width:300px" align="right" bgcolor="#CCCCCC">Errore operativo<input type="checkbox" name="CheckThis_eo" onclick="MostraCampi(this,'tr_errore_operativo_kpi')"/></td><td align="right">N° pezzi<input type="text" name="UserName" onfocus="CheckCheckBox_eo(this.form)" style="width:40px" onkeyup="verify_num(this);"/></td></tr>
    <div id="errore_operativo_kpi">
    <tr id="tr_errore_operativo_kpi" style="display:none"><td colspan="2" align="right">
    <?php
    if($prodotto_causa!="0"){
    $sql_errore_operativo="
    SELECT
    DISTINCT(ID_KPI)
    FROM
    AX_VIEW_ERRORE_OPERATIVO
    WHERE
    ID_PRODOTTO='$prodotto_causa'
    ";
    }else if($macroattivita_causa!="0"){
    $sql_errore_operativo="
    SELECT
    DISTINCT(ID_KPI)
    FROM
    AX_VIEW_ERRORE_OPERATIVO
    WHERE
    ID_MACROATTIVITA='$macroattivita_causa'
    ";
    }

    $result_mssql_errore_operativo=@mssql_query($sql_errore_operativo,$link);

    while($result_errore_operativo=mssql_fetch_array($result_mssql_errore_operativo)){
    $id_errore_operativo = $result_errore_operativo ["ID_CAUSA"];//id
    $n_causa = $result_errore_operativo ["N_CAUSA"];//nome per esteso
    $id_kpi = $result_errore_operativo ["ID_KPI"];//id kpi
    $domanda_quantita_kpi = $result_errore_operativo ["DOMANDA QUANTITA KPI"];//domanda quantità kpi
    $quantita_kpi = $result_errore_operativo ["QUANTITA KPI"];//quantita kpi
    $gravita_causa = $result_errore_operativo ["GRAVITA CAUSA"];//gravità causa errore

    ?>
    <?php if($id_kpi=="0"){?>
    KPI Errore operativo<select name="kpi_errore_operativo" style="width:400px">
    <option value="" selected>- Seleziona</option>
    <option value="1">kpi 1</option>
    <option value="2">kpi 2</option>
    <option value="3">kpi 3</option>
    </select><br/>
    <?php } ?>
    <?php if($quantita_kpi==NULL){
    if($domanda_quantita_kpi==NULL){
    ?>
    N° pezzi KPI<input type="text" name="n_pezzi_kpi_errore_operativo" style="width:40px" onkeyup="verify_num(this);"/>
    <?php }else{ ?>
    <?php echo $domanda_quantita_kpi;?><input type="text" name="n_pezzi_kpi_errore_operativo" style="width:40px" onkeyup="verify_num(this);"/>
    <?php } ?>
    <?php } ?>
    <?php if($gravita_causa==NULL){?>
    Gravità errore<select name="gravita_kpi_errore_operativo" style="width:100px">
    <option value="" selected>- Seleziona</option>
    <option value="Lieve">Lieve</option>
    <option value="Medio">Medio</option>
    <option value="Grave">Grave</option>
    </select>
    <?php } ?>
    <?php }//spostare ?>
    </td></tr>
    </div>
    <div id="errore_operativo_specifico">
    <?php
    if($prodotto_causa!="0" and $macroattivita_causa=="0"){
    $sql_errore_operativo_specifico="
    SELECT
    *
    FROM
    AX_VIEW_ERRORE_OPERATIVO
    WHERE
    ID_PRODOTTO='$prodotto_causa'
    ORDER BY
    ORD
    ";
    }else if($prodotto_causa=="0" and $macroattivita_causa!="0"){
    $sql_errore_operativo_specifico="
    SELECT
    *
    FROM
    AX_VIEW_ERRORE_OPERATIVO
    WHERE
    ID_MACROATTIVITA='$macroattivita_causa'
    ORDER BY
    ORD
    ";
    }else if($prodotto_causa=="0" and $macroattivita_causa=="0"){
    $sql_errore_operativo_specifico="
    SELECT
    *
    FROM
    AX_VIEW_ERRORE_OPERATIVO
    WHERE
    ID_PRODOTTO='$prodotto_causa' AND ID_MACROATTIVITA='$macroattivita_causa'
    ORDER BY
    ORD
    ";
    }else if($prodotto_causa!="0" and $macroattivita_causa!="0"){
    $sql_errore_operativo_specifico="
    SELECT
    *
    FROM
    AX_VIEW_ERRORE_OPERATIVO
    WHERE
    ID_PRODOTTO='$prodotto_causa' AND ID_MACROATTIVITA='$macroattivita_causa'
    ORDER BY
    ORD
    ";
    }

    $result_mssql_errore_operativo_specifico=@mssql_query($sql_errore_operativo_specifico,$link);

    while($result_errore_operativo_specifico=mssql_fetch_array($result_mssql_errore_operativo_specifico)){
    $id_errore_operativo_specifico = $result_errore_operativo_specifico ["ID_CAUSA"];//id
    $n_causa = $result_errore_operativo_specifico ["N_CAUSA"];//nome per esteso
    $id_kpi = $result_errore_operativo_specifico ["ID_KPI"];//id kpi
    $domanda_quantita_kpi = $result_errore_operativo_specifico ["DOMANDA QUANTITA KPI"];//domanda quantità kpi
    $quantita_kpi = $result_errore_operativo_specifico ["QUANTITA KPI"];//quantita kpi
    $gravita_causa = $result_errore_operativo_specifico ["GRAVITA CAUSA"];//gravità causa errore

    $causa_errore_operativo="";

    $causa_errore_operativo.="<tr><td style='width:300px' align='right'>$n_causa<input type='checkbox' name='$id_errore_operativo_specifico' onclick='MostraCampi(this,'tr_$id_errore_operativo_specifico')'/></td><td align='right'>N° pezzi<input type='text' name='UserName' style='width:40px' onkeyup='verify_num(this);'/></td></tr>";

    if($id_kpi=="0" or $quantita_kpi==NULL or $gravita_causa==NULL){
    $causa_errore_operativo.="<tr id='tr_$id_errore_operativo_specifico' style='display:none'>";
    if($id_kpi=="0"){
    $causa_errore_operativo.="<td colspan='2' align='right'>
    KPI $n_causa<select name='kpi_$n_causa' style='width:400px'>
    <option value='0' selected>- Seleziona</option>
    <option value='1'>kpi 1</option>
    <option value='2'>kpi 2</option>
    <option value='3'>kpi 3</option>
    </select></td>";
    }
    if($quantita_kpi==NULL or $gravita_causa==NULL){
    $causa_errore_operativo.="<tr><td colspan='2' align='right'>";
    if($quantita_kpi==NULL){
    if($domanda_quantita_kpi==NULL){
    $causa_errore_operativo.="N° pezzi KPI<input type='text' name='n_pezzi_kpi_$n_causa' style='width:40px' onkeyup='verify_num(this);'/>";
    }else{
    $causa_errore_operativo.="$domanda_quantita_kpi<input type='text' name='n_pezzi_kpi_$n_causa' style='width:40px' onkeyup='verify_num(this);'/>";
    }
    }
    if($gravita_causa==NULL){
    $causa_errore_operativo.="Gravità errore<select name='gravita_kpi_$n_causa' style='width:100px'>
    <option value='0' selected>- Seleziona</option>
    <option value='Lieve'>Lieve</option>
    <option value='Medio'>Medio</option>
    <option value='Grave'>Grave</option>
    </select>
    ";
    }
    $causa_errore_operativo.="</td></tr>";
    }
    }
    $causa_errore_operativo.="</tr>";
    echo $causa_errore_operativo;
    }
    ?>
    </div>
    </div>
    <?php } ?>
    <?php if($db_ritardo_operativo!=NULL or $db_numero_pezzi_ritardo_operativo!=NULL or $db_kpi_ritardo_operativo!=NULL or $db_numero_pezzi_kpi_ritardo_operativo!=NULL or $db_gravita_ritardo_operativo!=NULL){?>
    <div id="ritardo_operativo">
    <tr><td style="width:300px" align="right" rowspan="2" bgcolor="#CCCCCC">Ritardo operativo<input type="checkbox" name="CheckThis_ro" onclick="MostraCampi(this,'tr_ritardo_operativo_kpi')"/></td><td align="right">N° pezzi<input type="text" name="UserName" onfocus="CheckCheckBox_ro(this.form)" style="width:40px" onkeyup="verify_num(this);"/></td></tr>
    <tr><td align="right">Giorni di ritardo<input type="text" name="giorni_ritardo" onfocus="CheckCheckBox_ro(this.form)" style="width:40px" onkeyup="verify_num(this);"/></td></tr>
    <div id="ritardo_operativo_kpi">
    <tr id="tr_ritardo_operativo_kpi" style="display:none"><td colspan="2" align="right">
    KPI Ritardo operativo<select name="kpi_ritardo_operativo" style="width:400px">
    <option value="" selected>- Seleziona</option>
    <option value="1">kpi 1</option>
    <option value="2">kpi 2</option>
    <option value="3">kpi 3</option>
    </select><br/>
    N° pezzi KPI<input type="text" name="n_pezzi_kpi_ritardo_operativo" style="width:40px" onkeyup="verify_num(this);"/>
    Gravità errore<select name="gravita_kpi_ritardo_operativo" style="width:100px">
    <option value="" selected>- Seleziona</option>
    <option value="Lieve">Lieve</option>
    <option value="Medio">Medio</option>
    <option value="Grave">Grave</option>
    </select>
    </td></tr>
    </div>
    </div>
    <?php } ?>
    [/PHP]

    Praticamente diciamo che l'utente sceglie un prodotto e dalla sua scelta vengono visualizzati gli errori relativi al prodotto scelto.
    Prima di tutto vendono visualizzate le famiglie di errore (qui postato solo la famiglia errore operativo) poi sotto ognuno di questi vi sono inseriti gli errori specifici letti dal database.
    Se l'utente seleziona la checkbox della famiglia errore operativo può pooi mettere il numero di errori e se non è definito sul db compare l'indicatore relativo all'errore e altri dati.
    Questo funziona ma quando vengono creati dinamicamente gli errori specifici il codice (che è uguale a quello dell'errore principale) non funziona nwel senso che la checkbox non serve perchè la funzione MostraCampi() non fa il suo dovere e la riga della tabella contenente i campi dei form a comparsa non fa funzionare il comando style='display:none'.
    Chi mi sa dire perchè il codice fa i capricci.

    P.S. ricordo che la parte dinamica degl'errori specifici sono caricati su una variabile nel codice php e poi stampati a video mentre la famiglia dell'errore è codice html
    :?:?:?:?:?:?


  • User

    ho risolto così banalmente.
    [PHP]$causa_errore_operativo.="<tr><td style='width:300px' align='right'>$n_causa<input type='checkbox' name='$id_errore_operativo_specifico' onclick="MostraCampi(this,'tr_$id_errore_operativo_specifico')"/></td><td align='right'>N° pezzi<input type='text' name='UserName' style='width:40px' onkeyup='verify_num(this);'/></td></tr>";
    [/PHP]

    è possibile che " possa risolvere la vita?