Comment afficher dynamiquement un nombre de select (en fonction d'une option cho

cs_dragonsky51 Messages postés 3 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 22 février 2009 - 14 févr. 2009 à 23:45
cs_dragonsky51 Messages postés 3 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 22 février 2009 - 22 févr. 2009 à 12:08
Bonjour,

Alors j'ai un petit soucis .... je vais essayer d'etre le plus clair possible :)

Admettons que l'on veuille créer une bataille entre 2 clans qui se déroulent en plusieurs matchs (des 1vs1 et des 2vs2 par exemple).
Toute ma BDD fonctionne sans soucis et j'ai fais des requetes sympa.

Mon problème : je souhaiterais pouvoir affiché dans ma page pour "créer une bataille" un formulaire ... jusque là tout va bien :) Dans ce formulaire, on choisirait le nombre de matchs dans cette bataille (prenons comme exemple : 4 matchs en 1v1 et 1 match en 2v2, ce qui fait donc 5 matchs).

J'aimerais que lorsque je choisis cette option, cela "actualise" mon formulaire en me mettant le choix de 5 select (liste déroulante) afin que je définisse une option pour chacune d'elle (sur un meme type de select qui serait donc copier / coller le nombre de fois qu'il faut.

En gros : je choisis 5 matchs, comment faire pour afficher seulement 5 select. Si je choisis 4 matchs >> 4 select etc

En vous remerciant, j'espere avoir été clair au maximum :)

4 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
15 févr. 2009 à 07:27
bonjour,
5 fois  createElement + appendChild  dans le formulaire
Cordialement[mon Site][M'écrire]Bul
0
cs_dragonsky51 Messages postés 3 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 22 février 2009
15 févr. 2009 à 11:54
Salut,

Merci de ta réponse rapide :)

Alors n'étant qu'un peu "chercheur et travailleur" dans le javascript, je suis allé chercher quelques infos et faire quelques tests sur ces 2 fonctions.

Donc si j'ai bien compris, le createElement va justement "créer" ce que j'ai envie de créer. et le appendChild l'ajouter c'est bien ça ?

Concrètement, je n'ai réussi aucun test (meme un c/c html d'un site :( )

Pourrais-tu me donner un exemple le plus simple possible stp, je chercherai la suite tout seul ?

PS : si j'ai choisi 5 et que je repars sur mon choix de 3, il n'y en a bien que 3 qui s'afficheront avec cette méthode ? vu que j'en ai crée 5 ? Ou alors ça les suppr et les recrés à chaque fois le nombre voulu, avec un for par exemple ?
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
15 févr. 2009 à 13:46
>>le createElement va justement "créer" ce que j'ai envie de créer.
>>et le appendChild l'ajouter c'est bien ça ?
oui
>>je n'ai réussi aucun test
comment corriger sans le moindre ch'tiot bout de code ?
attention, pas 2365894 lignes, l'essentiel, pas plus
( 10 lignes ? )
0
cs_dragonsky51 Messages postés 3 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 22 février 2009
22 févr. 2009 à 12:08
Re,

Merci mais j'ai pas tout compris :p

J'ai réussi a trouver un petit code et à l'adapter un petit peu pour le moment mais j'ai deux problèmes.

Voici le code actuel :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv= "Content-Type" content="text/html; charset=utf-8">

<script type="text/javascript">

function add_response()
{

lan = document.getElementById('select').value;

for (i=1; i<=lan; i++){
    var div = document.createElement('div');
    
    /*var response = document.createElement('input');
    response.setAttribute('name', 'responses[]');
    response.setAttribute('type', 'text');
    
    div.appendChild(response);
    
    var btnDel = document.createElement('button');
    btnDel.innerHTML = "Supprimer";
    btnDel.onclick = function() {
        remove_response(this);
    }
    
    div.appendChild(btnDel);*/
    
    
   

        div.innerHTML = ' Supprimer ';

        
    
    var parent  = document.getElementById('responses_block');
    parent.appendChild(div);
     
}
}

function remove_response(elem)
{
    var child = elem.parentNode;
    var parent = child.parentNode;
    
    parent.removeChild(child);
}

</script>
</head>

<form id="add_poll" method="post" enctype="application/x-www-form-urlencoded" action="test.php">
    Select,

    <select name="select" id="select" onChange="add_response();"><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option></select>,

----

    Réponses :
Ajouter une réponse,
            
Supprimer

   ,

----
 

</form>          
          

</html>



Actuellement, lorsque je choisis par exemple "2", il m'ajoute bien 2 fois le innerHTML .... "MAIS" j'ai 2 problèmes :

1/ Je voudrais réussir à ajouter 2 "select" en php, je pense qu'il faut que je passe par une "div" à rajouter dans le code html et pas dans le javascript là mais je ne sais pas comment faire :s

2/ Je voudrais que lorsque je choisisse 3 au lieu de 1, bah ça affiche "en tout" 3, il faudrait juste que je fasse la fonction remove avant d'ajouter mais ... je ne sais pas ou exactement

Le 2eme problème, je pense que je vais réussir à le régler rapidement, mais le 1er .... j'avoue patauger ...

Merci de votre aide !
0
Rejoignez-nous