evenkil
Messages postés35Date d'inscriptionlundi 13 février 2006StatutMembreDernière intervention15 avril 2014
-
12 juil. 2007 à 18:33
kurapikt -
13 mars 2010 à 21:22
Bonjour,
Etant débutant en JavaScript et dhtml, je sollicite un peu
de votre aide pour créer une page. Je n’arrive pas a ajouter dynamiquement des
champs dans un formulaire.
Voici l’objectif que je me suis donné:
- Réaliser une page avec3 champs input text cote à cote + un bouton "ajouter "
button (c'est fait)
- Lorsque l’on a rempli les 3 input text, on clique sur le
bouton ajouter pour rajouter 3 champs en dessous + un bouton « ajouter »
button. (c'est fait)
- Le 1er bouton "ajouter" se transforme en un bouton "X" et lorsqu'on clique dessus ca efface la ligne. (capottage total ! je ne sais pas comment m'y prendre )
Pour ceux qui ont le FAI Free, c'est le meme concept que dans l'interface d'administration du routeur, lorsqu'on ajoute ou supprime une redirection de ports.
Merci beaucoup pour vos aides précieuses. Cordialement
Voici en attendant ce que j'ai deja réalisé
<html>
<head>
<title>Document sans nom</title>
<script>
function add_field() {
var d = document.getElementById('cible');
var n = d.childNodes.length;
var p = document.createElement("p");
d.appendChild(p);
var input = document.createElement("input");
input.type = 'text';
input.name = 'periodeIn'+n;
var input2 = document.createElement("input");
input2.type = 'text';
input2.name = 'periodeOut'+n;
var input3 = document.createElement("input");
input3.type = 'text';
input3.name = 'prix'+n;
p.appendChild(input);
p.appendChild(input2);
p.appendChild(input3);
document.getElementById('cible').style.visibility = 'visible';
evenkil
Messages postés35Date d'inscriptionlundi 13 février 2006StatutMembreDernière intervention15 avril 2014 13 juil. 2007 à 01:13
Effectivement ca fonctionne mais le soucis c'est que ca supprime tous les champs en dessous et le bouton pour ajouter les champs.
Par exemple, si j'ai 5 ligne, je veux supprimer la ligne 3, ca va également me supprimer la ligne 4 et 5.
Merci pour ton aide.
sananas
Messages postés6Date d'inscriptionmardi 25 octobre 2005StatutMembreDernière intervention27 février 2008 9 août 2007 à 12:00
Comme je cherchais à faire un peu la même chose, je me suis interessé à ton code et je crois que j'ai trouvé ce qui manque dans ta fonction supprimer pour éviter de tous les effacer...
essai ça :
function supr_champ(i)
{
var Parent;
var Obj = document.getElementById ( 'input_'+i) ;
acquatella
Messages postés8Date d'inscriptionmercredi 30 janvier 2008StatutMembreDernière intervention19 février 2008 30 janv. 2008 à 12:39
Bonjour,
Peut être est ce un peu tard pour entretenir le fil de ce post...
Mais voilà ma question :
Un fois le formulaire envoyé avec autant de champs ajoutés que nécessaire.
Imaginons que nous concervions les informations (nom des fichiers) dans un table.
Et que nous souhaitons, par la suite, modifier certains fichiers (nom de fichier).
Comment faire pour que automatiquement, et suivant le nombre valider au départ, le même nombre de champs apparaissent ?
Puisque au départ il n'y a aucun champs visible ?
Avec bien sur la case "effacer" ?
maelob
Messages postés943Date d'inscriptionmardi 14 novembre 2006StatutMembreDernière intervention 7 août 20093 30 janv. 2008 à 12:55
En gros ce que tu veux dire c'est que tu utiliserais la même page pour la creation (de tes noms de fichier) et la modification(de ces noms de fichier)?
et je pense qu'il aurait été plus judicieux de poster un nouveau sujet.
acquatella
Messages postés8Date d'inscriptionmercredi 30 janvier 2008StatutMembreDernière intervention19 février 2008 30 janv. 2008 à 14:13
J'utilise PHP.
Je pense que je vais pouvoir créer ces boucles en PHP...
Ce qui me pose problème c'est plutot le Javascript.
Je ne sais pas comment m'expliquer... enfin je vais essayer :
Une nouvelle info :
J'ai modifié le script pour ajouter un champ : "Légende" (et peut être un nouveau : "rang" pour les classer lors de l'affichage)
Je me sert de ce script pour ajouter des photos de concert... à un concert.
Et le nouveau champ ! "Légende" me permet d'ajouter une légende à ces photos.
Est il possible avec ce code Javascript d'afficher, dès l'ouverture de la page, certains "DIV" (suivant le nombre qu'il y aura dans ma table) directement, sans devoir passer par le bouton "ajouter un fichier" ?
acquatella
Messages postés8Date d'inscriptionmercredi 30 janvier 2008StatutMembreDernière intervention19 février 2008 30 janv. 2008 à 14:37
Excuse moi je me suis encore mal exprimé.
Je vais repartir depuis le début.
J'utilise ce Javascript pour ajouter des infos dans ma table (Photo + Légende de concert)
Ce script est super car il me permet d'ajouter autant (de pair) de champ que j'en ai besoin.
(Certains concerts peuvent avoir 15 photos, 10 photos... 5 etc... Je ne le sais pas dès le départ).
Ensuite je prend tout à l'aide de PHP pour l'incérer dans ma table... Tout cela est ok pour moi.
Mais j'aimerai utiliser ce même javascript pour modifier des photos et/ou légende de concert que j'ai déjà enregistrés dans ma table.
Car la modification peut porter sur la "modification" de légende (Orthographe par ex.), le remplacement de photo (photo mal exposée par ex.)... etc
Mais surtout l'ajout d'un nouvelle photo (+ sa légende) et aussi la suppresion d'un ancienne photo.
C'est pourquoi je vais utiliser de nouveau ce script (modifié) pour la modification.
Mais ce que je ne sais pas faire c'est dans la page modification comment faire apparaitre, de la même façon qu'apparaissent les champs (une fois que l'on clique sur le bouton "ajouter un fichier"), dés le début.
Avec bien sur le bouton "effacer" au cas ou ?
maelob
Messages postés943Date d'inscriptionmardi 14 novembre 2006StatutMembreDernière intervention 7 août 20093 30 janv. 2008 à 15:03
Oui c'est clair cette fois :-)
Mais je reste sur la même position que sur mon ancien message. A la
creation de ton concert et des ses photos tu dois bien enregistrer les
photos ainsi que leurs légendes quelques part? (une base de données par
exemple avec insert into)
Donc pour pouvoir les afficher il faut que tu ailles chercher les
photos dans ta base (avec une requete select) et après tu n'a plus qu'a
réafficher ton formulaire avec une boucle (affiche la legende dans un
input de type text pour pouvoir modifier) et lors du click sur le
bouton "valider" tu pourra faire une requete update pour editer les légende modifiée et une requete delete pour les photos effacées.
Le javascript en lui même ne pourra pas supprimer des photos (ainsi que
sa légende) ou chercher tes photos car javascript est executé coté
client et ne communique donc pas avec le seveur (sauf avec les xmlhttp
mais bon on va pas aller plus loin )
En gros le javascript te permet juste d'ajouter des champs dans ton
formulaire pas plus (ou de verifier qu'une légende a été bien saisie).
acquatella
Messages postés8Date d'inscriptionmercredi 30 janvier 2008StatutMembreDernière intervention19 février 2008 30 janv. 2008 à 15:08
Merci de ta réponse.
Effectivement je crois avoir compris l'utillité de ce javascript.
Et je pense que je vais utiliser une autre méthode pour modifier mes photos (et légende) déjà enregistrés.