Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Form dinamico???

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    108

    Form dinamico???

    Salve a tutti,
    sto realizzando del codice che preso in input un numero di persone,
    deve creare tanti form di input del nome, per quante sono le persone inserite, nella stessa pagina.
    Il problema è che nel form definisco una sola variabile (esempio nome), e non capisco come differenziare tale variabile per le persone immesse.

    non sò se mi sono spiegato bene, io avevo pensato alla memorizzazione in un vettore, però non sò come fare???
    Qualcuno mi può aiutare??

  2. #2
    Allora, vediamo se ho capito bene, tu inserisci in un form il numero, poniamo 5, e nella pagina successiva ti devono comparire 5 campi nome?
    "Una volta che si saranno esaurite senza successo tutte le possibilita', ci sara' una soluzione, semplice e ovvia, che saltera' immediatamente all'occhio di chiunque altro."

    Guardate: Il Miracolo delle Noci!!

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    108
    si è cosi, e questo riesco farlo,
    solo che poi non so come il form di input di tipo text che ho chiamato nome,possa gestire i 5 nomi diversi immessi, avrei bisogno per esempio di controllare che tutti e 5 i campi siano stati inseriti.

  4. #4
    mi faresti vedere il codice?
    "Una volta che si saranno esaurite senza successo tutte le possibilita', ci sara' una soluzione, semplice e ovvia, che saltera' immediatamente all'occhio di chiunque altro."

    Guardate: Il Miracolo delle Noci!!

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    108
    Ecco il codice, il numero di giocatori è stato inserito in una pagina set_player.php, e copiato nella variabile $_SESSION['num_gioc'], come cmq puoi ben vedere:

    <?php
    session_start();
    ob_start();
    ?>
    <html>
    <head>
    <title>Fantacalcio</title>
    </head>
    <body>
    <h1 align="center">Inserimento giocatori della rosa</h1>
    <?php

    if( (isset($_SESSION['username']) &&
    $_SESSION['username'] != "") ||
    (isset($_SESSION['password']) &&
    $_SESSION['password'] != ""))
    {

    //Connessione a MySql.
    include $_SERVER['localhost'].'/includes/connect_Mysql.inc.php';

    //Selezione del DB.
    include $_SERVER['localhost'].'/includes/connect_DB.inc.php';

    $num_gioc = $_SESSION['num_gioc'];

    if( isset($_POST['submit']) && $_POST['submit'] == "Prosegui")
    {
    //qui vorrei controllare che tutti i nomi sono stati inseriti.
    }
    else
    {

    ?>



    <form action="insert_player.php" method="post">
    <?php

    for($p=1; $p <= ($num_gioc) ; $p++ )
    {
    ?>
    <td bgcolor = "#FFFFFF" width = "50%">Nome giocatore</ td>
    <td bgcolor = "#FFFFFF" width = "50%">
    <input type = "text" name = "nome">
    </td>
    </br>

    <?php
    }
    ?>


    Spero ti sia utile.

  6. #6
    Intanto il codice ripetuto potresti metterlo così (ho aggiuto il numero progressivo al nome del campo):
    Codice PHP:
    <?php

        
    for($p=1$p <= ($num_gioc) ; $p++ )
        {
    ?>
            <td bgcolor = "#FFFFFF" width = "50%">Nome giocatore</ td>
            <td bgcolor = "#FFFFFF" width = "50%">
                <input type = "text" name = "nome<?=$p?>">
            </td>
            </br>

    <?php
        
    }
    ?>
    per il resto, quando fai il controllo potresti fare così:
    Codice PHP:
    <?php
        session_start
    ();
        
    ob_start();
    ?>
    <html>
    <head>
    <title>Fantacalcio</title>
    </head>
    <body>
    <h1 align="center">Inserimento giocatori della rosa</h1>
    <?php

        
    if( (isset($_SESSION['username']) &&
            
    $_SESSION['username'] != "")  ||
            (isset(
    $_SESSION['password']) &&
            
    $_SESSION['password'] != ""))
        {

            
    //Connessione a MySql.
            
    include $_SERVER['localhost'].'/includes/connect_Mysql.inc.php';

            
    //Selezione del DB.
            
    include $_SERVER['localhost'].'/includes/connect_DB.inc.php';

            
    $num_gioc $_SESSION['num_gioc'];
            
            if( isset(
    $_POST['submit']) && $_POST['submit'] == "Prosegui")
            {
              
    //qui vorrei controllare che tutti i nomi sono stati inseriti.
              
    $err=0;
              for(
    $n=0$n<30$n++)
              {
                   if(isset(
    $_POST['nome'.$n]))
                   {
                        if(
    trim($_POST['nome'.$n]) == '') { $err++; }
                   } else { break; }
              }
              if(
    $err==0)
              {
                    
    //vai alla pagina successiva
              
    }
              else
              {
                    
    //restituisci l'errore
              
    }
            }
             else
    {

    ?>



    <form action="insert_player.php" method="post">
    <?php

    for($p=1$p <= ($num_gioc) ; $p++ )
    {
    ?>
    <td bgcolor = "#FFFFFF" width = "50%">Nome giocatore</ td>
    <td bgcolor = "#FFFFFF" width = "50%">
    <input type = "text" name = "nome">
    </td>
    </br>

    <?php
    }
    ?>
    "Una volta che si saranno esaurite senza successo tutte le possibilita', ci sara' una soluzione, semplice e ovvia, che saltera' immediatamente all'occhio di chiunque altro."

    Guardate: Il Miracolo delle Noci!!

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    108
    grazie mille Lathspell,
    ora provo a vedere cosa riesco a fare.

  8. #8
    nel codice ho inserito il limite di campi a 30, ma ovviamente il numero può variare a seconda delle tue esigenze. Fammi sapere.
    "Una volta che si saranno esaurite senza successo tutte le possibilita', ci sara' una soluzione, semplice e ovvia, che saltera' immediatamente all'occhio di chiunque altro."

    Guardate: Il Miracolo delle Noci!!

  9. #9
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    Potresti anche mettere come nome del campo del form:

    name="nome[]"

    Così ti passa un array e poi te lo gestisci nel php.

  10. #10
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    Per gestirlo nel for per esempio puoi fare così:

    Codice PHP:
    if( isset($_POST['submit']) && $_POST['submit'] == "Prosegui"
            { 
              
    //qui vorrei controllare che tutti i nomi sono stati inseriti. 
              
    $err=0
              for(
    $n=0$n<count($_POST['nome']); $n++) 
              { 
                   if(isset(
    $_POST['nome'][$n])) 
                   { 
                        if(
    trim($_POST['nome'][$n]) == '') { $err++; } 
                   } else { break; } 
              } 
              if(
    $err==0
              { 
                    
    //vai alla pagina successiva 
              

              else 
              { 
                    
    //restituisci l'errore 
              

            } 

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.