par
therafou » 04 avr. 2007, 09:20
voilà je viens de faire l'ajout des différentes parties dans le script.
J'ai bien entendu testé avec FireFox et quand je clique sur le lien "ajouter" il me retourne un message d'erreur comme quoi
array() is not defined avec le référenceur d'erreur.
Donc je ne comprends pas, j'ai donc testé en mettant un var devant chaque variable du tableau du style:
var valeurs[1] = array('valeur 2', false);
....
Il ne me retourne plus de message d'erreur et n'affiche toujour rien.
Désoler, je dois reconnaitre que mon niveau en JS est du niveau (copier/coller)
Source modifier avec le script de
Cyrano:
Code : Tout sélectionner
<html>
<head>
<script>
function addFile(idChamp)
{
try
{
var conteneur = document.getElementById(idChamp);
var undiv = document.createElement('div');
var text_image = document.createTextNode('Image :');
var text_titre = document.createTextNode('Titre :');
var file = document.createElement('input');
var title = document.createElement('input');
// Déclaration de l'élément
var liste = document.createElement('select');
// Déclaration du tableau
var valeurs = array();
valeurs[0] = array('valeur 1', true); // true =< valeur sélectionnée par défaut (par exemple)
valeurs[1] = array('valeur 2', false);
valeurs[2] = array('valeur 3', false);
valeurs[3] = array('valeur 4', false);
valeurs[4] = array('valeur 5', false);
// Déclaration des champs du formulaire
liste.setAttribute('name', 'maliste');
liste.setAttribute('id', 'maliste');
file.setAttribute('type','file');
file.setAttribute('name','file[]');
file.setAttribute('value','');
file.size="20";
title.setAttribute('type','text');
title.setAttribute('name','title[]');
title.setAttribute('value','');
title.size="20";
// déclaration des variables pour la boucle
var nbOptions = valeurs.length;
var item;
// mise en place de la boucle
for(var i = 0; i < nbOptions; i++)
{
item = document.createElement('option');
item.setAttribute('value', valeurs[i][0]);
if(valeurs[i][1] == true)
{
item.setAttribute('selected', 'selected');
}
liste.appendChild(item);
}
// fin de la boucle
undiv.appendChild(text_image);
undiv.appendChild(file);
undiv.appendChild(text_titre);
undiv.appendChild(title);
undiv.appendChild(liste);
conteneur.appendChild(undiv);
}
catch(e)
{
alert(e);
}
}
</script>
</head>
<body>
<a href="#" onClick="javascript:addFile('divfile');">Ajouter</a>
<form action="upload.php" id="picture" method="post">
<input type="hidden" name="posted" value="1">
<div id="divfile"></div>
<input type="submit" value="Envoyer" />
</form>
</body>
</html>
Je continue à chercher de mon coté.
Encore merci à Cyrano.
voilà je viens de faire l'ajout des différentes parties dans le script.
J'ai bien entendu testé avec FireFox et quand je clique sur le lien "ajouter" il me retourne un message d'erreur comme quoi [i]array() is not defined[/i] avec le référenceur d'erreur.
Donc je ne comprends pas, j'ai donc testé en mettant un var devant chaque variable du tableau du style:
var valeurs[1] = array('valeur 2', false);
....
Il ne me retourne plus de message d'erreur et n'affiche toujour rien.
[i]
Désoler, je dois reconnaitre que mon niveau en JS est du niveau (copier/coller)[/i]
Source modifier avec le script de [b]Cyrano[/b]:
[code]<html>
<head>
<script>
function addFile(idChamp)
{
try
{
var conteneur = document.getElementById(idChamp);
var undiv = document.createElement('div');
var text_image = document.createTextNode('Image :');
var text_titre = document.createTextNode('Titre :');
var file = document.createElement('input');
var title = document.createElement('input');
// Déclaration de l'élément
var liste = document.createElement('select');
// Déclaration du tableau
var valeurs = array();
valeurs[0] = array('valeur 1', true); // true =< valeur sélectionnée par défaut (par exemple)
valeurs[1] = array('valeur 2', false);
valeurs[2] = array('valeur 3', false);
valeurs[3] = array('valeur 4', false);
valeurs[4] = array('valeur 5', false);
// Déclaration des champs du formulaire
liste.setAttribute('name', 'maliste');
liste.setAttribute('id', 'maliste');
file.setAttribute('type','file');
file.setAttribute('name','file[]');
file.setAttribute('value','');
file.size="20";
title.setAttribute('type','text');
title.setAttribute('name','title[]');
title.setAttribute('value','');
title.size="20";
// déclaration des variables pour la boucle
var nbOptions = valeurs.length;
var item;
// mise en place de la boucle
for(var i = 0; i < nbOptions; i++)
{
item = document.createElement('option');
item.setAttribute('value', valeurs[i][0]);
if(valeurs[i][1] == true)
{
item.setAttribute('selected', 'selected');
}
liste.appendChild(item);
}
// fin de la boucle
undiv.appendChild(text_image);
undiv.appendChild(file);
undiv.appendChild(text_titre);
undiv.appendChild(title);
undiv.appendChild(liste);
conteneur.appendChild(undiv);
}
catch(e)
{
alert(e);
}
}
</script>
</head>
<body>
<a href="#" onClick="javascript:addFile('divfile');">Ajouter</a>
<form action="upload.php" id="picture" method="post">
<input type="hidden" name="posted" value="1">
<div id="divfile"></div>
<input type="submit" value="Envoyer" />
</form>
</body>
</html>[/code]
Je continue à chercher de mon coté.
Encore merci à Cyrano.