Da un FORM creare una Tabella dinamica

ypsilon86

Utente Attivo
18 Dic 2012
48
0
0
Roma
Buongiorno a tutti,
sono nuovo nel campo del web, ho un problema e vorrei illustrarvelo:


Devo creare una tabella per inserire dei nomi all'interno del mio Database.

Ho un FORM, che contiene una Tabella, ogni Riga della tabella contiene 3 Colonne.
Le ultime due colonne sono campi testo che ammettono solo numeri interi <input name="NomeColonna" type="text" size="2" maxlength="2" />; a seconda del numero che inserisco vorrei che nella pagina a cui rimanda il form si creasse una tabella con N righe che ho precedentemente inserito.
In sostanza il numero che inserisco nel campo testo del form corrisponde al N di righe che poi dovrei avere nella tabella.


La pagina dove deve crearsi la tabella è immissionedati.php

HTML:
<form action="immissionedati.php" method="get" id="inserisci">

<table border="0">

  <tr>
  <td></td>
    <td width="100" align="center">Maschi</td>
    <td width="100" align="center">Femmine</td>
  </tr>

  <tr>
    <td>VETERANI</td>
    <td align="center"><input name="veteraniM" type="text" size="2" maxlength="2" /></td>
    <td align="center"><input name="veteraniF" type="text" size="2" maxlength="2" /></td>
  </tr>

  <tr>
    <td>CAMPIONI</td>
    <td align="center"><input name="campioniM" type="text" size="2" maxlength="2" /></td>
    <td align="center"><input name="campioniF" type="text" size="2" maxlength="2" /></td>
  </tr>

  <tr>
    <td>LIBERA</td>
    <td align="center"><input name="liberaM" type="text" size="2" maxlength="2" /></td>
    <td align="center"><input name="liberaF" type="text" size="2" maxlength="2" /></td>
  </tr>

  <tr>
    <td>LAVORO</td>
    <td align="center"><input name="lavoroM" type="text" size="2" maxlength="2" /></td>
    <td align="center"><input name="lavoroF" type="text" size="2" maxlength="2" /></td>
  </tr>

  <tr>
    <td>INTERMEDIA</td>
    <td align="center"><input name="intermediaM" type="text" size="2" maxlength="2" /></td>
    <td align="center"><input name="intermediaF" type="text" size="2" maxlength="2" /></td>
  </tr>

  <tr>
    <td>GIOVANI</td>
    <td align="center"><input name="giovaniM" type="text" size="2" maxlength="2" /></td>
    <td align="center"><input name="giovaniF" type="text" size="2" maxlength="2" /></td>
  </tr>

   <tr>
    <td>JUNIORES</td>
    <td align="center"><input name="junioresM" type="text" size="2" maxlength="2" /></td>
    <td align="center"><input name="junioresF" type="text" size="2" maxlength="2" /></td>
  </tr>

  <tr>
    <td>PUPPY</td>
    <td align="center"><input name="puppyM" type="text" size="2" maxlength="2" /></td>
    <td align="center"><input name="puppyF" type="text" size="2" maxlength="2" /></td>
  </tr>

  <tr>
  <td colspan="3" align="center"><input name="Invia" type="submit" value="INVIA" /></td>
  </tr>

</table>

</form>
potete aiutarmi grazie :)
 
Ultima modifica di un moderatore:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
potresti fare cosi
PHP:
echo "<table>";
for ($vm = 0; $vm < (int) $_POST['veteraniM']; $vm++) {
    echo "<tr>";
    echo "<td>nome</td>";
    echo "<td><input type='text' name='vm" . $vm . "'/></td>";
    echo "</tr>";
}
echo "</table>";
 

ypsilon86

Utente Attivo
18 Dic 2012
48
0
0
Roma
1.jpgCriric ho altre 2 domande :

1) Nel caso in cui avessi una categoria uguale a 0 (zero) nella prima pagina, vorrei che il titolo della categoria sparisse nella seconda pagina, quindi che non si vedesse. In sostanza vorrei che in tabella ci siano solo le categorie che contengono partecipanti. Ho allegato un'immagine, con le X rosse ho segnalato le categorie vuote, (forse bisognerebbe dire al PHP di mostrare la riga contenente il nome della categoria solo se fosse > 0) ma non so come fare!


2.jpg

ad ogni modo aggiungo parte del codice:

<table border="1">
<tr>
<td colspan="3" align="center"><h1>MASCHI</h1></td>
</tr>



<tr>
<td colspan="3"><h4>Veterani</h4></td>
</tr>";


<?php

for ($vm = 0; $vm < (int) $_POST['veteraniM']; $vm++) {
echo "<tr>";
echo "<td>veteraniM</td>";
echo "<td><input type='text' name='vm" . $vm . "'/></td>";
echo "<td><input type='text' name='vm" . $vm . "'/></td>";
echo "</tr>";
}
?>

<tr>
<td colspan="3"><h4>Campioni</h4></td>
</tr>

<?php
for ($vm = 0; $vm < (int) $_POST['campioniM']; $vm++) {
echo "<tr>";
echo "<td>campioniM</td>";
echo "<td><input type='text' name='vm" . $vm . "'/></td>";
echo "<td><input type='text' name='vm" . $vm . "'/></td>";
echo "</tr>";
}
?>




2) domanda:

Vorrei che nel PHP, all'interno della prima colonna non compaia per es. veteraniM, campioniM... bensì 1°,2°,3°...cioè il numero che inserisco nella prima pagina mi dovrebbe generare lo stesso numero di righe nella seconda pagina, ma all'interno di ogni riga vorrei che comparisse 1°,2°,3° nella prima colonna.
Non so se sono stato esplicativo :)


Ancora grazieeeee
 

GoshMaledetto

Utente Attivo
20 Dic 2012
137
0
0
www.goshweb.com
Se deve esserci almeno un maschio o una femmina basta mettere un controllo prima della visualizzazione

Codice:
if($_POST['veteraniM'] > 0 || $_POST['veteraniF'] >0) {
   for ($vm = 0; $vm < (int) $_POST['veteraniM']; $vm++) { 
      echo "<tr>"; 
      echo "<td>" . ($vm+1) . "°</td>"; 
      echo "<td><input type='text' name='vm" . $vm . "'/></td>";
      echo "<td><input type='text' name='vm" . $vm . "'/></td>"; 
      echo "</tr>"; 
   }
}
EDIT ho aggiunto il numero riga
 
Ultima modifica:

ypsilon86

Utente Attivo
18 Dic 2012
48
0
0
Roma
Intanto grazie per l'aiuto GOSH :)

In realtà non mi serviva il controllo IF prima del FOR perchè la gara ammette anche un sol omaschi oo una sola femmina. io cercavo qualcosa che mi facesse sparire il nome della categoria.Ti posto il codice:


Vorrei che sparisse la riga con scritto "Puppy" se non ci fossero partecipanti <tr> <td>...Puppy</td></tr>


PHP:
<tr>
  	<td colspan="3"><h4>Puppy</h4></td>
 </tr>


    <?php

  for ($vm = 0; $vm < (int) $_POST['puppyF']; $vm++) { 
    echo "<tr>"; 
    echo "<td>" . ($vm+1) . "°</td>"; 
    echo "<td><input type='text' name='vm" . $vm . "'/></td>";
	echo "<td><input type='text' name='vm" . $vm . "'/></td>"; 
    echo "</tr>"; 
}
  ?>
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
ricordarsi di racchiudere i codici tra gli appositi tag (seconda riga di formattazione del post, ultime tre iconcine, rispettivamente CODE, HTML, PHP)
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
se maschi piu femmine è maggiore di 0 scrivi la tr altrimenti no
PHP:
<?php

if (((int) $_POST['puppyF'] + (int) $_POST['puppyM']) > 0) {
    ?>

    <tr>
        <td colspan="3"><h4>Puppy</h4></td>
    </tr>

    <?php

}
?>
il name dovresti cambiarlo ad ogni categoria
PHP:
<?php

for ($pf = 0; $pf < (int) $_POST['puppyF']; $pf++) {
    echo "<tr>";
    echo "<td>" . ($pf + 1) . "°</td>";
    echo "<td><input type='text' name='pf" . $pf . "'/></td>";
    echo "<td><input type='text' name='altro" . $pf . "'/></td>";
    echo "</tr>";
}
?>