IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Ajouter un nouveau champs par bouton + et création de variables


Sujet :

JavaScript

  1. #21
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 127
    Par défaut
    Bonjour

    Voici donc les questions:

    - Comment utiliser le script concrètement dans la page ? Car dans votre post je ne vois que des exemples de scripts, mais aucun exemple d'insertion dans le code visible par l'utilisateur


    - Comment faire pour récupérer les variables avec les informations entrées par l'utilisateur, via des $_POST dans une function generation qui génère la fiche contenant les infos entrées par l'utilisateur ? J'ai lu votre post avec le script et je ne comprends pas comment résoudre ma question :s

    Merci d'avance et désolé de l'acharnement, mais c'est un point essentiel pour mon générateur

  2. #22
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    heu dans le post il y a un exemple concret d'utilisation du script ...

    L'étape suivant serait que je vienne taper le code sur ton clavier ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #23
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 127
    Par défaut
    heu dans le post il y a un exemple concret d'utilisation du script ...
    Je ne vois que des exemples d'écriture de script, pas d'utilisation du script et c'est bien là que je coince Ou bien je lis mal et dès lors je m'en excuserai

    L'étape suivant serait que je vienne taper le code sur ton clavier ?
    Je n'ai jamais dit ça, je demande juste de l'aide car ne connaissant pas le javascript plus que ça (et n'ayant pas le temps pour aller plus loin dans l'apprentissage de ce langage, j'ai mes études d'abord), je ne sais pas comment utiliser ce script que vous avez écrit une fois qu'il a été introduit dans la page de mon formulaire

  4. #24
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    Désolé je en comprends pas la question :
    Je ne vois que des exemples d'écriture de script, pas d'utilisation du script et c'est bien là que je coince Ou bien je lis mal et dès lors je m'en excuserai
    tu dois faire une différence trop subtile pour moi entre:
    exemples d'écriture de script,
    etJe ne peux pas utiliser le script pour toi ... je ne peux que donner des exemples ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #25
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 127
    Par défaut
    Bonjour
    Pour moi,

    Ecrire le script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type="text/javascript">
    function Construct(){
     
            var pdc1=$C({"obj":"input","type":"text","name":"pdcname1[]","size":"15","maxlenght":"255","value":"Nom Dieu","onclick":"this.value='';"} );
    	$Close(pdc1);
    	var pdc2=$C({"obj":"input","type":"text","name":"pdcname2[]","size":"3","maxlenght":"2"} );
         	$Close(pdc2); 
     
    }
    </script>
    Utiliser le script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <body>
    <form action='mapage.php' method='post'>
             <fieldset id='Croyances'>
                <legend>Croyances</legend>
                <input type='button' value='Ajouter un Dieu' onclick='Construct()' /><br />
             </fieldset>
          </form>
    </body>
    Mon problème: je ne vois pas ce que je dois faire pour utiliser votre script car là ca ne fonctionne pas: http://warforum-jdr.com/genprez/test3.php

    Merci d'avance

  6. #26
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    ????????????????????????

    Visiblement tu ne connais pas le sens du mot librairie.
    Une librairie est un ensemble de fonctions javascript que l'on inclut sur la page.
    En fait tu essayes de démarrer une voiture sans moteur !

    Ou insères tu le code, le noyau ? l'essentiel du script !!!
    Cette partie là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    var Flux=new Array();
    var isIE =(document.all)?true:false;
    Array.prototype.ArrayPos=function(quoi){
            var Position=-1;
            for (i=0;this[i];i++){ if (quoi==this[i]){Position=i;}
                                    }
            return Position;
        }
     
    $Close=function(Closing){
           var FluxPos=Flux.ArrayPos(Closing)
           var FluxLength=Flux.length;
           var SpliceLength=FluxLength-FluxPos+1;
           var AppendLot=Flux.splice(FluxPos+1,SpliceLength);
     
           for(l=0;AppendLot[0];l++){
                            Closing.appendChild(AppendLot.shift())
                                }
           if(Flux.length==1){document.body.appendChild(Flux.pop())}
                               }
     
     
    var $C= function (HasH){
        var Elt='';
        var Special=false;
     
        switch(HasH['type']){
                case('radio' ): Elt=(isIE)?'<input name="'+HasH['name']+'">':HasH['obj'];
                                  Special=(isIE)?true:false;    
                                  break;
     
                case('checkbox' ): Elt=(isIE)?'<input name="'+HasH['name']+'">':HasH['obj'];
                                  Special=(isIE)?true:false;    
                                  break;
                            case('file' ): Elt=(isIE)?'<input name="'+HasH['name']+'">':HasH['obj'];
                                  Special=(isIE)?true:false;    
                                  break;                             
     
                default:          Elt=HasH['obj'];
                                  Special=(isIE)?true:false;
                }
     
        if(HasH['obj']=='label'){Elt=(isIE)?'<label for="'+HasH['htmlFor']+'">':HasH['obj'];
                                 Special=(isIE)?true:false;
                                 }
      if(HasH['obj']=='select'){Elt=(isIE)?('<select name="'+HasH['name']+'" '+((HasH['multiple']==1)?'multiple ':'')+' >'):HasH['obj'];
                                 Special=(isIE)?true:false;
                                 }
       if(HasH['obj']=='form'){Elt=(isIE)?('<form name="'+HasH['name']+' >'):HasH['obj'];
                                 Special=(isIE)?true:false;
                                 }
     
        var Obj=document.createElement(Elt);
        for (elt in HasH){
            if (elt != 'obj'){
                    if(elt=='css'){   for(Styl in HasH['css']){Obj.style[Styl]=HasH['css'][Styl];}
                                  }
     
                    else{ 
                               if(isIE){ if(!Special || (elt!='name' && elt!='for' )){
                                                                          Obj[elt]=HasH[elt];
                                                                  }
                                  }            
                         else{ Obj[elt]=HasH[elt];
                                }         
     
                    }    
            }
         }
     Flux.push(Obj);    
     return Obj; 
     }
    Elle n'est nullepart ??? et tu espères qu'il se passe quelque chose !!!
    autrement dit là tu appelles des fonctions qui n'existent pas sur ta page ...

    EN mettant le corps de la fonction de creation des éléménts DANS la page ça donnerait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Nouvelle page 1</title>
    <script type='text/javascript'>
    var Flux=new Array();
    var isIE =(document.all)?true:false;
    Array.prototype.ArrayPos=function(quoi){
            var Position=-1;
            for (i=0;this[i];i++){ if (quoi==this[i]){Position=i;}
                                    }
            return Position;
        }
     
    $Close=function(Closing){
           var FluxPos=Flux.ArrayPos(Closing)
           var FluxLength=Flux.length;
           var SpliceLength=FluxLength-FluxPos+1;
           var AppendLot=Flux.splice(FluxPos+1,SpliceLength);
     
           for(l=0;AppendLot[0];l++){
                            Closing.appendChild(AppendLot.shift())
                                }
           if(Flux.length==1){document.body.appendChild(Flux.pop())}
                               }
     
     
    var $C= function (HasH){
        var Elt='';
        var Special=false;
     
        switch(HasH['type']){
                case('radio' ): Elt=(isIE)?'<input name="'+HasH['name']+'">':HasH['obj'];
                                  Special=(isIE)?true:false;    
                                  break;
     
                case('checkbox' ): Elt=(isIE)?'<input name="'+HasH['name']+'">':HasH['obj'];
                                  Special=(isIE)?true:false;    
                                  break;
                            case('file' ): Elt=(isIE)?'<input name="'+HasH['name']+'">':HasH['obj'];
                                  Special=(isIE)?true:false;    
                                  break;                             
     
                default:          Elt=HasH['obj'];
                                  Special=(isIE)?true:false;
                }
     
        if(HasH['obj']=='label'){Elt=(isIE)?'<label for="'+HasH['htmlFor']+'">':HasH['obj'];
                                 Special=(isIE)?true:false;
                                 }
      if(HasH['obj']=='select'){Elt=(isIE)?('<select name="'+HasH['name']+'" '+((HasH['multiple']==1)?'multiple ':'')+' >'):HasH['obj'];
                                 Special=(isIE)?true:false;
                                 }
       if(HasH['obj']=='form'){Elt=(isIE)?('<form name="'+HasH['name']+' >'):HasH['obj'];
                                 Special=(isIE)?true:false;
                                 }
     
        var Obj=document.createElement(Elt);
        for (elt in HasH){
            if (elt != 'obj'){
                    if(elt=='css'){   for(Styl in HasH['css']){Obj.style[Styl]=HasH['css'][Styl];}
                                  }
     
                    else{ 
                               if(isIE){ if(!Special || (elt!='name' && elt!='for' )){
                                                                          Obj[elt]=HasH[elt];
                                                                  }
                                  }            
                         else{ Obj[elt]=HasH[elt];
                                }         
     
                    }    
            }
         }
     Flux.push(Obj);    
     return Obj; 
     }
    function Construct(){
     
            var pdc1=$C({"obj":"input","type":"text","name":"pdcname1[]","size":"15","maxlenght":"255","value":"Nom Dieu","onclick":"this.value='';"} );
    	$Close(pdc1);
    	var pdc2=$C({"obj":"input","type":"text","name":"pdcname2[]","size":"3","maxlenght":"2"} );
         	$Close(pdc2); 
     
    }
    </script>
     
    </head>
     
    <body>
    <form action='mapage.php' method='post'>
             <fieldset id='Croyances'>
                <legend>Croyances</legend>
                <input type='button' value='Ajouter un Dieu' onclick='Construct()' /><br />
             </fieldset>
          </form>
    </body>

    L'idéal étant d'avoir le noyau dans un fichier externer et de l'appeler dans le head !!
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #27
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 127
    Par défaut
    Bonjour

    Merci, je comprends mieux maintenant. En effet, je ne savais pas ce qu'était la librairie, je pensais que c'était autre chose que ce que c'est réellement ^^

    Ca fonctionne dans les faits désormais, mais pas encore tout à fait correctement

    => j'ai quelques questions subsidiaires:

    (je rappelle que la fonction ajoute une ligne à chaque fois, champs par pack de 2 par ligne)

    -

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var pdc1=$C({"obj":"input","type":"text","name":"pdcname1[]","size":"15","maxlenght":"255","value":"Nom Dieu","onClick":"this.value='';"}  );
    L'évènement onClick ne fonctionne pas. Mais je ne vois pas pourquoi. J'ai cru d'abord à un problème du fait qu'au départ le c commençant "click" n'était pas en majuscule, mais rien à faire, cela ne marche pas.

    - http://warforum-jdr.com/genprez/presentation.php avec comme code du fieldset

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <fieldset id='Croyances'>
                <legend>Croyances</legend>
                <input type='button' value='Ajouter un Dieu' onclick='Construct()' />
     
                <br />
             </fieldset>
          </form>
    Je voudrai que les champs qui s'ajoutent restent dans le fieldset, hors là, le bouton avec l'évènement contruct a beau être dans le fieldset, les ajouts se retrouvent en dehors du cadre du formulaire, en bas de page

    - J'ai essayé de récupérer les valeurs entrées dans les input (avec une seule ligne générée dynamiquement pour commencer), en faisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function generation()
    {
     
     
    // les différentes variables sont exprimées ici
     
    	$pdcname1[] = $_POST['pdcname1[]'];
    	$pdcname2[] = $_POST['pdcname2[]'];
     
    ...
    ...
    ...
     
    ^  Dieu      ^  Points de dévotions disponibles           ^  Points de dévotions dépensés         ^
    |  **'.stripslashes($pdcname1[]).'**    |  '.stripslashes($pdcname2[]).'  |  0  |
    Mais cela ne marche pas à cause des [], problème "Cannot use [] for reading". Cela rejoint dans uns sens le tiret suivant

    NB: la synthaxe autour des stripslashes est une syntaxe de wiki, puisque ce qui est généré par le formulaire est mis en page et destiné à être copié dans un wiki.

    - De quelle manière le code pour récupérer les valeurs de pdc1 et pdc2 doit-il être écrit pour récupérer les valeurs de plusieurs champs ajoutés dynamiquement, comme par exemple:
    http://img217.imageshack.us/img217/7...zdazqaqdaz.png

    ?

    Merci d'avance, on avance

  8. #28
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    Bon ou tu lui passes un string à ton onclick; il s'attend a recevoir une fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var pdc1=$C({"obj":"input","type":"text","name":"pdcname1[]","size":"15","maxlenght":"255","value":"Nom Dieu","onfocus":function(){this.value='';}} );
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #29
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 127
    Par défaut
    Bonsoir

    Ok pour ce point, j'ai compris l'erreur ^^ Corrigé et ca fonctionne, la valeur s'enlève bien au clic.

    Restent les autres points qui sont les principaux problèmes

    Merci d'avance

  10. #30
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    pour ce qui est du passage des variables ça ne relève pas de la librairie, c'est un basique de javascript php

    Pour récupérer un array en php il faut nommer les elements coté html de façon rationnelle

    coté html
    =>
    $variable=$_POST['monobjet'][0];
    coté php

    pour ce qui est de l'endroit ou l'objet est inséré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Close=function(Closing)
    il est appendé à Closing
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #31
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 127
    Par défaut
    Bonsoir

    pour ce qui est de l'endroit ou l'objet est inséré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Close=function(Closing)
    il est appendé à Closing
    Et comment utiliser cette fonction? J'ai essayé plusieurs manières, aucune ne marche.

    Pour le passage variable -> $_POST:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $pdcname1[] = $_POST['pdcname1[]'][0];
    	$pdcname2[] = $_POST['pdcname2[]'][0];
    ?

    Si je fais ça, et qu'ensuite je met dans le code PHP plus loin qui donne le code mis en page à l'utilisateur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    |  **'.stripslashes($pdcname1[][0]).'**    |  '.stripslashes($pdcname2[][0]).'  |  0  |
    Cela ne marche pas, rien ne s'affiche quand on génère la fiche.

    Merci d'avance, et désolé si mes questions peuvent sembler bêtes ^^

  12. #32
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    Je en vois pas de bouton sumbit à ton form ...??
    Code avec ajout dans le fieldset

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Croyances</title>
    <script type='text/javascript'>
    var Flux=new Array();
    var isIE =(document.all)?true:false;
    Array.prototype.ArrayPos=function(quoi){
            var Position=-1;
            for (i=0;this[i];i++){ if (quoi==this[i]){Position=i;}
                                    }
            return Position;
        }
     
    $Close=function(Closing,Dest){
           var FluxPos=Flux.ArrayPos(Closing)
           var FluxLength=Flux.length;
           var SpliceLength=FluxLength-FluxPos+1;
           var AppendLot=Flux.splice(FluxPos+1,SpliceLength);
     
           for(l=0;AppendLot[0];l++){
                            Closing.appendChild(AppendLot.shift())
                                }
           if(Flux.length==1 && arguments.length==1){document.body.appendChild(Flux.pop())}
           if(Flux.length==1 && arguments.length==2){arguments[1].appendChild(Flux.pop())}
     
                        }
     
     
    var $C= function (HasH){
        var Elt='';
        var Special=false;
     
        switch(HasH['type']){
                case('radio' ): Elt=(isIE)?'<input name="'+HasH['name']+'">':HasH['obj'];
                                  Special=(isIE)?true:false;    
                                  break;
     
                case('checkbox' ): Elt=(isIE)?'<input name="'+HasH['name']+'">':HasH['obj'];
                                  Special=(isIE)?true:false;    
                                  break;
                            case('file' ): Elt=(isIE)?'<input name="'+HasH['name']+'">':HasH['obj'];
                                  Special=(isIE)?true:false;    
                                  break;                             
     
                default:          Elt=HasH['obj'];
                                  Special=(isIE)?true:false;
                }
     
        if(HasH['obj']=='label'){Elt=(isIE)?'<label for="'+HasH['htmlFor']+'">':HasH['obj'];
                                 Special=(isIE)?true:false;
                                 }
      if(HasH['obj']=='select'){Elt=(isIE)?('<select name="'+HasH['name']+'" '+((HasH['multiple']==1)?'multiple ':'')+' >'):HasH['obj'];
                                 Special=(isIE)?true:false;
                                 }
       if(HasH['obj']=='form'){Elt=(isIE)?('<form name="'+HasH['name']+' >'):HasH['obj'];
                                 Special=(isIE)?true:false;
                                 }
     
        var Obj=document.createElement(Elt);
        for (elt in HasH){
            if (elt != 'obj'){
                    if(elt=='css'){   for(Styl in HasH['css']){Obj.style[Styl]=HasH['css'][Styl];}
                                  }
     
                    else{ 
                               if(isIE){ if(!Special || (elt!='name' && elt!='for' )){
                                                                          Obj[elt]=HasH[elt];
                                                                  }
                                  }            
                         else{ Obj[elt]=HasH[elt];
                                }         
     
                    }    
            }
         }
     Flux.push(Obj);    
     return Obj; 
     }
    function Construct(){
        var monfieldset=document.getElementById('Croyances')
        var pdc1=$C({"obj":"input","type":"text","name":"pdcname1[]","size":"15","maxlenght":"255","value":"Nom Dieu","onclick":function(){this.value='';}} );
    	 $Close(pdc1,monfieldset);
    	 var pdc2=$C({"obj":"input","type":"text","name":"pdcname2[]","size":"3","maxlenght":"2"} );
        $Close(pdc2,monfieldset); 
     
    }
    </script>
     
    </head>
     
    <body>
    <form action='#' method='post'>
             <fieldset id='Croyances'>
                <legend>Croyances</legend>
                <input type='button' value='Ajouter un Dieu' onclick='Construct()' /><br />
             </fieldset>
    		  <input type="submit" value="valider" />
    </form>
    </body>
    Coté serveur tu recevras deux arrays $_POST['pdcname1'][] et $_POST['pdcname2'][]
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  13. #33
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 127
    Par défaut
    Bonjour

    Pour le problème des ajouts qui se font en dehors du cadre, c'est réglé avec votre code

    Néanmoins j'ai toujours un problème avec les []. Voici mon code du générateur, je ne met que ce qui est en rapport avec les variables en question ici:

    presentation.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
    <title>Warhammer JDR: Jeu de r&ocirc;le par forum</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link href="stylegenprez.css" rel="stylesheet" type="text/css" />
    <!-- Ajout dynamique de champs-->
    <script src="http://warforum-jdr.com/genprez/champsdynoyau.js">
    </script>
    <script type="text/javascript">
    function Construct(){
        var monfieldset=document.getElementById('Croyances')
        var pdc1=$C({"obj":"input","type":"text","name":"pdcname1[]","size":"15","maxlenght":"255","value":"Nom Dieu","onclick":function(){this.value='';}} );
    	 $Close(pdc1,monfieldset);
    	 var pdc2=$C({"obj":"input","type":"text","name":"pdcname2[]","size":"3","maxlenght":"2"} );
        $Close(pdc2,monfieldset); 
    	 var pdc3=$C({"obj":"br"} );
        $Close(pdc3,monfieldset);
     
    }
     
    </script>
    </head>
    <body style="background-image:url(http://i40.tinypic.com/nwgdh1.jpg); background-attachment: fixed; background-repeat: no-repeat;">
    <?php
    require('../traceIP/trace_ip.php');
    ?>
    	    <table width="950" align="center" border="0" style="background-color:#929B98;">
    	      <tr>
    	        <td width="300"><div class="heading">
    	      <p>Warhammer JDR</p>
    	              <blockquote>
    	                <blockquote>
    	                  <p>G&eacute;n&eacute;rateur de personnage</p>
                        </blockquote>
                  </blockquote>
     
                </div>
    	          <p align="left"><em><br />
                Cette page vous permet, gr&acirc;ce &agrave; une interface claire et rapide, de cr&eacute;er votre personnage de A &agrave; Z, de mani&egrave;re assist&eacute;e et pas &agrave; pas. Suivez les &eacute;tapes une &agrave; une, et vous g&eacute;n&egrave;rerez le code complet correspondant &agrave; la fiche de votre personnage, mise en page, qui n'attendra qu'une validation de la part des MJ. </em><br />
                <strong>Veuillez remplir - enti&egrave;rement - ce formulaire pour g&eacute;n&eacute;rer votre fiche personnage simplement. Les (?) sont des infobulles d'aide qui vous seront utiles, lisez-les en pointant votre souris dessus.</strong></p></td>
      <td width="193" style="padding-left:15px" align="center">
    <?php
    include("../menu.php");
    ?>
    		<br>
     
    </td>
              </tr>
          </table>
          <?php
            require("presentation_generator.php");
            form_meta("presentationfinale.php");
    ?>   
    </body>
    </html>
    presentation_generator.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?php
    function form_meta($wow)
    {
    echo'
            <form id="form1" method="post" action="'.$wow.'">
    <fieldset id=\'Croyances\'>
                <legend>Croyance religieuse (<a href="http://warforum-jdr.com/wiki-v2/doku.php?id=3.7_regles_concernant_les_croyances" target=_blank>Points de croyances</a>):</legend>
                <input type=\'button\' value=\'Ajouter un Dieu\' onclick=\'Construct()\' /><br />
             </fieldset>
    <center><input type="submit" value="G&eacute;n&eacute;rer la pr&eacute;sentation" /></center>
                    
        </form>';
    }
     
     
    function generation()
    {
            
            
    // les différentes variables sont exprimées ici
    $pdcname1[] = $_POST['pdcname1[]'][];
    $pdcname2[] = $_POST['pdcname2[]'][];
     
    echo '=== Dévotion religieuse ===
    
    ^  Dieu      ^  Points de dévotions disponibles           ^  Points de dévotions dépensés         ^
    |  **'.stripslashes($pdcname1[]).'**    |  '.stripslashes($pdcname2[]).'  |  0  |';
    } 
     
    } 
    ?>
    Erreur:

    Fatal error: Cannot use [] for reading in presentation_generator.php on line 410
    Qui est la ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    |  **'.stripslashes($pdcname1[]).'**    |  '.stripslashes($pdcname2[]).'  |  0  |
    Sans les [] à cette ligne, l'erreur disparait, mais j'obtiens dans la page générée "array" à la place des valeurs entrées que je devrais avoir normalement

  14. #34
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Fatal error: Cannot use [] for reading in presentation_generator.php on line 410
    c'est une erreur de syntaxe php, pas javascript ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $pdcname1[] = $_POST['pdcname1[]'][];
    $pdcname2[] = $_POST['pdcname2[]'][];
    Il faut l'indice en lecture pour un array php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $_POST['pdcname1[]'][0]
    dans ton cas il te faut en fait boucler sur les post pour attribuer les valeurs coté php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $i=-1;
    while($_POST['pdcname1'][++$i]{
       $pdcname1[] = $_POST['pdcname1'][$i];
    }
    Et comme expliqué précédemment les [] cote html forment un array coté php mais
    devient
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  15. #35
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 127
    Par défaut
    Bonjour

    Je ne pense pas avoir tout suivi, j'aurai donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $i=-1;
    	while($_POST['pdcname1'][++$i]
    	{
        $pdcname1[] = $_POST['pdcname1'][$i];
    	}
    	while($_POST['pdcname2'][++$i]
            {
        $pdcname2[] = $_POST['pdcname2'][$i];
    	}
    au lieu de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $pdcname1[] = $_POST['pdcname1[]'][];
    $pdcname2[] = $_POST['pdcname2[]'][];
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    |  **'.stripslashes($pdcname1[]).'**    |  '.stripslashes($pdcname2[]).'  |  0  |
    ?

  16. #36
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    après les boucles de remplissage de tes array php fais donc un var_dump ou print_r ...

    ça t'aidra à y voir plus clair
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $i=-1;
    	while($_POST['pdcname1'][++$i]
    	{
        $pdcname1[] = $_POST['pdcname1'][$i];
    	}
    $i=-1
    	while($_POST['pdcname2'][++$i]
            {
        $pdcname2[] = $_POST['pdcname2'][$i];
    	}
     
    var_dump($pdcname1);
    var_dump($pdcname2);
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  17. #37
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 127
    Par défaut
    Ok donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <?php
    function form_meta($wow)
    {
    echo'
            <form id="form1" method="post" action="'.$wow.'">
    <fieldset id=\'Croyances\'>
                <legend>Croyance religieuse (<a href="http://warforum-jdr.com/wiki-v2/doku.php?id=3.7_regles_concernant_les_croyances" target=_blank>Points de croyances</a>):</legend>
                <input type=\'button\' value=\'Ajouter un Dieu\' onclick=\'Construct()\' /><br />
             </fieldset>
    <center><input type="submit" value="G&eacute;n&eacute;rer la pr&eacute;sentation" /></center>
                    
        </form>';
    }
     
     
    function generation()
    {
     
    // les différentes variables sont exprimées ici
     
            $i=-1;
            while($_POST['pdcname1'][++$i]
            {
        $pdcname1[] = $_POST['pdcname1'][$i];
            }
            $i=-1
            while($_POST['pdcname2'][++$i]
            {
        $pdcname2[] = $_POST['pdcname2'][$i];
            }
            var_dump($pdcname1);
            var_dump($pdcname2);
     
    echo '=== Dévotion religieuse ===
     
    ^  Dieu      ^  Points de dévotions disponibles           ^  Points de dévotions dépensés         ^
    |  **'.stripslashes($pdcname1).'**    |  '.stripslashes($pdcname2).'  |  0  |';
    } 
     
    } 
    ?>
    De cette manière ? Si oui, j'ai une erreur:

    Parse error: syntax error, unexpected ';' in presentation_generator.php on line 229
    Ligne 229:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        $pdcname1[] = $_POST['pdcname1'][$i];
    NB: Ne manque-t-il pas un ";" après le 2e $i=-1 ?

  18. #38
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    essaye d'en mettre un... chiche
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  19. #39
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 127
    Par défaut
    Ca ne change rien à l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $i=-1;
    	while($_POST['pdcname1'][++$i]
    	{
        $pdcname1[] = $_POST['pdcname1'][$i];
    	}
    	$i=-1;
    	while($_POST['pdcname2'][++$i]
            {
        $pdcname2[] = $_POST['pdcname2'][$i];
    	}
    	var_dump($pdcname1);
    	var_dump($pdcname2);

  20. #40
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    y'a que 41 lignes dans ton code ...
    et y'a surtout un
    } tout seul à la fin ...

    Pour moi le souci javascript est réglé ...
    La tu te bats avec php
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 27/07/2016, 15h56
  2. [AC-2007] Ajouter un nouveau champ a un formulaire ou requete
    Par zippi dans le forum IHM
    Réponses: 4
    Dernier message: 02/05/2011, 17h21
  3. Ajout d'un champ par programmation
    Par zwina2004 dans le forum WinDev
    Réponses: 3
    Dernier message: 06/10/2008, 10h17
  4. Réponses: 6
    Dernier message: 11/04/2007, 00h50
  5. Réponses: 4
    Dernier message: 11/05/2006, 17h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo