• User

    modulo dinamico in base a selezione

    ho Il seguente problema:
    ho creato un modulo con menu a tendina che contiene valori da 1 a 10.
    di seguito ho un altro modulo con due campi testo.
    come posso fare a ripetere il secondo modulo in base a quanto o selezionato nel primo?
    Si puo fare? o devo stabilire a priori quante righe devo inserire?


  • User

    dovrei usare javascript
    o posso creare qualcosa in php?


  • Consiglio Direttivo

    Ciao jackfolla
    spero di aver capito :mmm:
    -se i due moduli sono nella stessa pagina puoi usare javascript
    -se sono nella stessa pagina e vuoi utilizzare php dovrai inviare i dati, alla stessa pagina, e quindi ricaricarla, in modo da poter lavorare il valore inviato dallo script del primo modulo...


  • User

    mi spiego meglio: io dovrei inviare a un database mysql piu righe contemporaneamente.
    questo lo posso fare con una query di inserimento con piu "values" a seconda di quante righe devo inserire, giusto?
    il numero di righe lo conosco perche lo prendo dal documento di ingresso,a titolo informativo devo fare un sistema di carico scarico di materiale, quindi so quanti elementi devo inserire contemporaneamente perche appartengono allo stesso documento di carico.
    ora devo trovare un modo per poter visualizzare tanti campi di testo (per ogni record sono due Uno per il part_number e uno per il serial number) quante sono gli elementi da inserire.
    ad esempio seleziono nel primo modulo 5 e nel secondo modulo mi compaiono 5 righe con i campi testo part number e serial number.

    una volta inseriti i dati nel secondo form (lo devo fare con il lettore barcode ma questo e un altro problema :1: devo effettuare il submit e mandare i dati al db.
    Spero di essere stato un po piu chiaro anche se forse e meglio che stacco un poco peche so sei ore che scrivo codice.:sbav:


  • User

    forse ho usato troppe parole


  • Consiglio Direttivo

    Ti dico teoricamente come lo farei io 😉
    Se credi possa andare vediamo di svilupparlo 😉
    Allura, prima di tutto ti servirà un form costruito in maniera "dinamica". Ovvero senza campi prefissi, non in numero ovviamente.
    In un primo script imposterai quanti documenti caricare ($i)
    nel secondo script (quello del form) prendi il valore e tramite un ciclo ti crei, dentro il form, $i coppie di campi s/n e p/n a cui abbinerai: name=serial_number$i
    name=part_number$i
    ed un hidden data con value=$i
    nel terzo script ti memorizzerai dentro degli array tutti i dati, tramite un ciclo:
    $pn*=$_POST['part_number$i']
    $sn*=$_POST['serial_number$i']

    Fatto questo ti cicli l'array e ti inserisci le righe 😉

    Ovviamente ho scritto tutto in maniera sintatticamente sbagliata, era solo per dare un'idea di quel che si dovrebbe fare 😉


  • User

    si potrebbe andare anzi deve andare se no sto messo male:)
    vediamo se ho capito
    questo è il form di selezione :
    [html]
    <form name="form3" method="post" action="">
    <label>N°
    <select name="N°" id="N°">
    <option value="1" selected>1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
    </select>
    </label>
    </form>
    [/html]
    da qui posso selezionare il numero di righe mettendo nell'action la stessa pagina dove ho il codice del secondo form ?

    poi ho il form relativo agli item:
    [HTML]
    <form method="POST" name="form1" id="form1">
    <table width="42%" border="0" align="center">
    <tr>
    <td height="18" class="headerTableGray"><div align="center"> Part Number
    <input type="text" name="Part Number" id="Part Number">
    </div></td>
    <td class="headerTableGray"><label>
    <div align="center">Serial Number
    <input type="text" name="Serial Number" id="Serial Number">
    </div>
    </label></td>
    </tr>
    </table>
    <p> </p>
    <p align="center">
    <label>
    <input type="submit" name="button" id="button" value="Invia">
    </label>
    </p>
    </form>
    [/HTML]
    poi mi sono perso.....:)
    come faccio a fare un ciclo in html per riperere questo form tante volte quanto vale il valore passato dal primo form..?


  • Consiglio Direttivo

    @jackfolla said:

    [html]
    <form name="form3" method="post" action=".......">
    <label>N°
    <select name="N°" id="N°">
    <option value="1" selected>1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
    </select>
    </label>
    </form>
    [/html]
    da qui posso selezionare il numero di righe mettendo nell'action la stessa pagina dove ho il codice del secondo form ?
    uhm.....o metti un tasto submit o utilizzi javascript per fare un OnSelect->submit, vedi tu per questo come lo vuoi impostare. Comunque si, devi mettere nell'action il nome della pagina che contiene il secondo script 😉

    @jackfolla said:

    poi ho il form relativo agli item:
    si, che avrà estensione .php:
    [php]<?
    $i=$_POST['N°']; // perchè ti complichi la vita con questo N°??? XD
    ?>
    <form method="POST" name="form1" id="form1" action="terzo_script.php>
    <table width="42%" border="0" align="center">
    <?
    $f=1;
    while ($f<=$i)
    {
    echo "<tr>
    <td height='18' class='headerTableGray'>
    <div align='center'> Part Number
    <input type='text' name='Part Number".$f."' id='Part Number'>
    </div></td>
    <td class='headerTableGray'><label>
    <div align='center'>Serial Number
    <input type='text' name='Serial Number".$f."' id='Serial Number'>
    </div>
    </label></td>
    </tr>";
    $f=$f+1;
    }
    ?>
    </table>
    <p> </p>
    <p align="center">
    <label>
    <input type="hidden" name="N°" value="<? echo $i; ?>">
    <input type="submit" name="button" id="button" value="Invia">
    </label>
    </p>
    </form>
    [/php]
    Non ho testato, ma così dovrebbe funzionare 😄
    ti dovrebbe creare $i righe all'interno del tuo form 😄

    Fin quì dovremmo esserci credo 😉
    Se si, passiamo poi allo script di inserimento 😉


  • User

    funziona!
    solo ce un problemino....
    ho sostituito N***&deg ***con num 🙂
    ho messo nell'action del form la pagina dove inviare num che e la stessa dove eseguo il secondo script. ma la variabile non viene passata:bho:
    se al posto della variabile passata metto un numero il tuo script va alla perfezione.....


  • Consiglio Direttivo

    @jackfolla said:

    funziona!
    😄
    @jackfolla said:
    solo ce un problemino....
    😢

    li hai modificati così?:?
    file_uno.html
    [html]
    <form name="form3" method="post" action="file_due.php">
    <label>N°
    <select name="num" id="num" type="select-one">
    ..........
    [/html]

    file_due.php
    [php]<?
    $i=$_POST['num'];
    ?>
    ...............[/php]


  • User

    si....
    solo che file1.html è carico_item.php
    e il form di selezione cosi
    <form name="form3" method="post" action="file_due.php" OnSelect="submit">


  • User

    praticamente deve stare tutto in una pagina.php e dopo aver fatto il submit degli item heiderare su una pagina dove faccio il riepilogo di tutti i dati e eventualmente stamparli.....ma perche hanno scelto me per questo progetto?


  • Consiglio Direttivo

    @jackfolla said:

    si....
    solo che file1.html è carico_item.php
    e il form di selezione cosi
    <form name="form3" method="post" action="file_due.php" OnSelect="submit">
    spe', forse intendi che quando selezioni il numero di righe nel file carico_item.php non apre la pagina file_due.php??:?


  • User

    gli script stanno tutti nella stessa pagina che e carico_item.php
    prima di cio ce una query che mi riepiloga i dati generali della bolla di carico che ho inserito con un precedente form....
    in questa pagina io dovrei selezionare il numero di item e inserire part number e serial number relativi alla bolla.
    poi effettuare il submit per registrare i dati....


  • User

    non vedo nessun errore....:x forse e l'eta sto perdendo colpi....:)
    [html]
    <table width="100%" border="0">
    <tr>
    <td><div align="center"><strong>Seleziona Il Numero di Item Presenti sulla documento</strong></div></td>
    </tr>
    <tr>
    <td><div align="center">
    <form name="form3" method="post" action="carico_item.php" OnSelect="submit" >
    <label>N°
    <select name="num" id="num">
    <option value="1" selected>1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
    </select>
    </label>
    <p>
    <label></label>
    </p>
    </form>
    </div></td>
    </tr>
    </table>
    <?
    $i=$_POST['num'];
    ?>
    <form method="POST" name="form1" id="form1" action="carico_item.php >
    <table width="42%" border="0" align="center">
    <?
    $f=1;
    while ($f<=$i)
    {
    echo "<tr>
    <td height='18' class='headerTableGray'>
    <div align='center'> Part Number
    <input type='text' name='Part Number".$f."' id='Part Number'>
    </div></td>
    <td class='headerTableGray'><label>
    <div align='center'>Serial Number
    <input type='text' name='Serial Number".$f."' id='Serial Number'>
    </div>
    </label></td>
    </tr>" ;
    $f=$f+1;
    }
    ?>
    </table>
    <p> </p>
    <p align="center">
    <label>
    <input type="hidden" name="N°" value="<? echo $i; ?>">
    <input type="submit" name="button" id="button" value="Invia">
    </label>
    </p>
    </form>
    [/html]


  • Consiglio Direttivo

    @jackfolla said:

    praticamente deve stare tutto in una pagina.php e dopo aver fatto il submit degli item heiderare su una pagina dove faccio il riepilogo di tutti i dati e eventualmente stamparli.....ma perche hanno scelto me per questo progetto?
    I tre script possono tranquillamente stare anche dentro una stessa pagina 😉

    carico_item.php

    [php]
    <form name="form3" method="post" action="carico_item.php">
    <label>N°
    <select name="num" id="num" type="select-one">
    <option value="1" selected>1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
    </select>
    </label>
    <input type="hidden" name="action" value="1">
    <input type="submit" value="seleziona">
    </form>

    <?
    $action=$_POST['action'];
    switch ($action)
    {
    case 1:

        $i=$_POST['num'];
    
        echo '<form method="POST" name="form1" id="form1" action="carico_item.php">
         <table width="42%" border="0" align="center">';
    
        $f=1;
        while ($f<=$i)
        { 
         echo "<tr>
                <td height='18' class='headerTableGray'>
                 <div align='center'> Part Number
                  <input type='text' name='PNumber".$f."' id='PNumber".$F."'>
                 </div></td>
                <td class='headerTableGray'><label>
                 <div align='center'>Serial Number
                  <input type='text' name='SNumber".$f."' id='SNumber".$f."'>
                 </div>
                </label></td>
               </tr>";
         $f=$f+1;
        }
    

    echo "</table>
    <p> </p>
    <p align='center'>
    <label>
    <input type='hidden' name='num' value='".$i."'>
    <input type='hidden' name='action' value='2'>
    <input type='submit' name='button' id='button' value='Invia'>
    </label>
    </p>
    </form>";
    break;

    }

    [/php]

    edit: avevo dimenticato il break 😄


  • User

    è una bomba!
    solo devo risovlere un piccolo bug....
    nella stessa pagina io paaso una variabile di modulo per effettuare il riepilogo dei dati generali della bolla di carico.
    quando vado a selezionare il numero di elementi da caricare probabimente perdo la variabile post che uso per effettuare la query....
    secondo te se la salvo come variabile di sessione risolvo il problema?
    comunque mi hai salvato la vita.....
    devo solo capire come fare lo script di invio dei dati al db..... ma una cosa alla volta......


  • Consiglio Direttivo

    @jackfolla said:

    secondo te se la salvo come variabile di sessione risolvo il problema?
    O te la continui a portar dietro tramite hidden data o te la "trasporti" tramite le sessioni 😉 la decisione sta a te 😉