Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292

    elaborare dati da input dinamiche

    Ciao ragazzi, ho un piccolo problema, in pratica ho una pagina html e con un javascript ho una funzione che cliccando sul tasto aggiungi mi crea degli input, ad esempio se clicco 5 volte sul tasto aggiungi automaticamente si inseriranno 5 campi input. Il mio problema è che quando premo il submit per far elaborare questi campi (da un file php) nel file "ricevi.php" non so come fare a prendermi questi dati non sapendo a priori quanti sono. Per capire ancora meglio vi incollo il codice html:



    <script>
    var i=2;
    function add(id)
    {
    campi = document.createElement('div');
    campi.id = "mine"; //assegna al div un nome
    document.getElementById(id).appendChild(campi);
    campi.innerHTML="<tr><td><input type=\"text\" name=\"campo"+i+"\"></td><td><input type=\"text\" name=\"valore"+i+"\"></td></tr>";
    i++;
    }
    </script>

    <center>
    <form action="ricevi.php" method="GET">
    <table border=0>
    <tr>
    <td>valore</td>
    <td>testo</td>
    </tr>
    <tr>
    <td>
    <input type="text" name="campo1">
    </td>
    <td>
    <input type="text" name="valore1">
    </td>
    </tr>
    <tr><td colspan=2>
    <div id="prova"> </div>
    </td></tr>
    <tr><td colspan=2>
    <input type="button" value="aggiungi" onclick="javascript:add('prova');">
    </td></tr>
    <tr><td colspan=2>
    <input type="submit" value="Genera">
    </td></tr>
    </table>
    </form>
    </center>



    ------------
    come potete vedere nella pagina php gli arriveranno dei valori mandati con il get, come faccio a prenderli? I valori potranno essere 5 ma potranno essere anche 10.
    Spero in un vostro aiuto

    Grazie
    Matt86

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    ciao, cambia questa parte:

    codice:
    <input type=\"text\" name=\"campo"+i+"\"></td><td><input type=\"text\" name=\"valore"+i+"\"></td></tr>";
    in
    codice:
    <input type=\"text\" name=\"campo[]\"></td><td><input type=\"text\" name=\"valore[]\"></td></tr>";
    nella tua pagina ricevi.php riceverai 2 array

    $_POST['campo'] e $_POST['valore'], per i quali potrai fare un ciclo cosi

    codice:
    foreach($_POST['campo'] as $campo) {
    
    ...
    oppure contarne gli elementi con
    codice:
    count($_POST['campo']);
    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    Grazie gianiaz,
    e se invece "campo" fosse un campo di file?

    foreach($_FILES['userfile'] as $filemandato) {
    $bb.=$filemandato['name'].":#:";
    $filez.=move_uploaded_file($filemandato['tmp_name'], $uploaddir . $filemandato['name']).":#:";
    }

    ho messo così ma non funziona, c'è un modo diverso per il file?

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    No il metodo è lo stesso, viene solo organizzato un po' diversamente.

    Ti consiglio di stampare un print_r($_FILES) nella pagina ricevi.php cosi ti rendi conto di come è organizzata la cosa.

    ciao

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.