Ajout multiple avec une balise textarea
2004/09/06 19:41
On peut à l'aide d'un textarea ajouter des éléments dans une base de données rapidement et efficacement. Parmi les avantages on peu noté:
- Rapidité d'ajouter en lot des items
- Ne demande pas de javascript (d'ajout de champs input dynamiquement)
- On peut copier-coller une liste (ou effectuer un drag'n'drop)
Voici comment procéder:
- Créer un formulaire XHTML et ajouter une balise textarea avec plusieurs lignes.
<form method="post" action="fichier.php"> <fieldset> <textarea cols="40" rows="5" name="txt"></textarea> <input type="submit" value="ajouter" /> </fieldset> </form>
- Ensuite, ajouter le code PHP qui traitera le formulaire, c'est à dire, mettre chaque ligne dans un tableau, et boucler. Note: j'assume qu'on est déjà connecté à la base de données, qu'il n'y a pas de problème avec les caractères slashs et que nous travaillons avec Linux pour simplifier le code.
<?php // ... $tabTxt = explode("\n", $_POST['txt']); foreach ( $tabTxt as $txt ) { if ( $txt != '' ) { $strInsert = 'INSERT INTO matable (unChampTexte) VALUES ( \''.$txt.'\')'; if ( ! mysql_query($strInsert, $database_ressource) ) { echo 'erreur mysql...'; } } } // ... ?>
- Bien attendu, on peut être plus restrictif dans les comparaisons, faire un explode sur les caractères \r\n, arrêter la boucle lorsqu'il y a une erreur, etc..