2009-05-18 5 views
1

Je poste un formulaire comportant de nombreux champs similaires (artiste1, artiste2, .... artiste20). J'essaye de les ajouter à une base de données mais je ne suis pas sûr comment obtenir facilement toutes les données postées sans avoir à écrire chacun séparément. Comment puis-je combiner un int à une chaîne de sorte que je ne dois pas écrire chacun d'eux? C'est une façon j'ai essayé que le travail na pas:Collecte de données POST à ​​partir de champs similaires

for($i=0; $i <= 20; $i++) 
{ 
    $artist = $_POST['artist'.$i] 
} 

J'ai aussi essayé (qui ne marchait pas):

for($i=0; $i <= 20; $i++) 
{ 
    $art = 'artist' . $i; 
    $artist = $_POST[ $art ]; 
} 

Répondre

5

Vous pouvez nommer vos éléments HTML avec des crochets et PHP les convertir en un tableau pour vous:

<input type="text" name="artist[]" value="abc" /> 
<input type="text" name="artist[]" value="def" /> 
<input type="text" name="artist[]" value="ghi" /> 
<input type="text" name="artist[]" value="jkl" /> 

lorsque vous postez que, voici ce que vous obtiendrez en PHP:

print_r($_POST); 

/* array(
    artist => array(
     0 => "abc", 
     1 => "def", 
     2 => "ghi", 
     3 => "jkl" 
    ) 
) */ 

... pour les obtenir dans une base de données, voir cette question: insert two kinds of array in the same table

+0

ok. les amener dans un tableau fonctionnerait parfaitement !!! Merci! –

Questions connexes