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

Langage PHP Discussion :

Variables qui s'affichent une fois sur deux, voir pas du tout


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    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
    Points : 36
    Points
    36
    Par défaut Variables qui s'affichent une fois sur deux, voir pas du tout
    Bonjour

    Je monte actuellement un formulaire de génération de fiche, en gros selon les informations entrées, l'utilisateur récupère un texte contenant ces informations (le texte étant formaté, etc).

    Voyez:

    http://warforum-jdr.com/genprez/presentation.php

    Essayez le en utilisant uniquement les ajouts de champs dynamiques, et générez le résultat via le bouton submit. Dans le code généré, vous aurez (avec de la chance) une partie ou toutes les informations rentrées. Maintenant faits "Page précédente": les champs ont disparus, ajoutez en en entrant des nouvelles valeurs (ou les mêmes qu'avant), et générez. Il y a de grande chances pour que plus rien ne soient affichés dans les zones qui devraient afficher les valeurs des champs.

    Les zones en questions:

    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
    echo '^  Inventaire (Encombrement: '.stripslashes($enc2).' )                          ^^^^^';
    if(empty($arma1[1]))
    { echo '';
    }
    else{
    foreach(array_keys($arma1) as $val1) {
    	echo '
    |  Icone  |  **'.stripslashes($arma1[$val1]).'**    |  '.stripslashes($arma2[$val1]).'  |  '.stripslashes($arma3[$val1]).'  |';
    	}
    }
    if(empty($usu1[1]))
    { echo '';
    }
    else{
    foreach(array_keys($usu1) as $val2) {
    	echo '
    |  Icone  |  **'.stripslashes($usu1[$val2]).'**  |||';
    	}
    }
     
    	if(empty($sort1[1]))
    { echo '';
    }
    else{ echo'|< 50em >|
    ^  Grimoire                          ^^';
    foreach(array_keys($sort1) as $val3) {
    	echo '
    |  **'.stripslashes($sort1[$val3]).'**    |  '.stripslashes($sort2[$val3]).'    |';
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if(empty($pdcname1[1]))
    { echo '';
    }
    else{
    	foreach(array_keys($pdcname1) as $val4) {
    	echo '
    |  **'.stripslashes($pdcname1[$val4]).'**    |  '.stripslashes($pdcname2[$val4]).'  |  0  |';
    	}
    }
    Zone des variables concernées:

    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
    // Recup variables inventaires //
    	$i=-1;
    	while($_POST['arma1'][++$i])
    	{
        $arma1[] = $_POST['arma1'][$i];
    	}
    	$i=-1;
    	while($_POST['arma2'][++$i])
            {
        $arma2[] = $_POST['arma2'][$i];
    	}
    	$i=-1;
    	while($_POST['arma3'][++$i])
            {
        $arma3[] = $_POST['arma3'][$i];
    	}
    	$i=-1;
    	while($_POST['usu1'][++$i])
            {
        $usu1[] = $_POST['usu1'][$i];
    	}
    	// Fin recup variables inventaire //
    	// Recup variables PDC //
    	$i=-1;
    	while($_POST['pdcname1'][++$i])
    	{
        $pdcname1[] = $_POST['pdcname1'][$i];
    	}
    	$i=-1;
    	while($_POST['pdcname2'][++$i])
            {
        $pdcname2[] = $_POST['pdcname2'][$i];
    	}
    	// Fin recup variables PDC //
    	// Recup variables sorts //
    	$i=-1;
    	while($_POST['sort1'][++$i])
    	{
        $sort1[] = $_POST['sort1'][$i];
    	}
    	$i=-1;
    	while($_POST['sort2'][++$i])
            {
        $sort2[] = $_POST['sort2'][$i];
    	}
    	// Fin recup variables sorts //
    Essayez plusieurs fois et vous verrez par vous même le problème si je n'ai pas réussi à l'expliquer correctement ci dessus.

    Je ne comprend pas pourquoi cela donne ce résultat Un problème de variables $val- ? Ou autre chose ?

    Voici le code complet de la page si besoin:

    le header, presentation.php, qui contient les scripts:

    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
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    <!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">
    <!-- Ajout champs pdc-->
    function Constructpdc(){
        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);
    }
     
    <!-- Fin ajout champs pdc-->
    <!-- Ajout champs armes-->
     
    function Constructarma(){
        var monfieldset=document.getElementById('Armesarmures');
     
        var pdc1=$C({"obj":"input","type":"text","name":"arma1[]","size":"20","maxlenght":"255","value":"Nom arme/armure","onclick":function(){this.value='';}} );
    	$Close(pdc1,monfieldset);
     
    	var pdc2=$C({"obj":"input","type":"text","name":"arma2[]","size":"20","maxlenght":"255","value":"Caractéristiques","onclick":function(){this.value='';}} );
        $Close(pdc2,monfieldset); 
     
    	var pdc3=$C({"obj":"input","type":"text","name":"arma3[]","size":"20","maxlenght":"255","value":"Autres","onclick":function(){this.value='';}} );
        $Close(pdc3,monfieldset); 
     
    var pdc4=$C({"obj":"br"} );
        $Close(pdc4,monfieldset);
    }
     
    <!-- Fin ajout champs armes-->
    <!-- Ajout champs objets usuels-->
     
    function Constructusu(){
        var monfieldset=document.getElementById('objusu');
     
        var pdc1=$C({"obj":"input","type":"text","name":"usu1[]","size":"20","maxlenght":"255","value":"Objet usuel","onclick":function(){this.value='';}} );
    	$Close(pdc1,monfieldset);
     
    }
     
    <!-- Fin ajout champs objets usuels-->
    <!-- Ajout champs sorts-->
     
    function Constructsort(){
        var monfieldset=document.getElementById('sorts');
     
        var pdc1=$C({"obj":"input","type":"text","name":"sort1[]","size":"15","maxlenght":"255","value":"Nom du sort","onclick":function(){this.value='';}} );
    	$Close(pdc1,monfieldset);
     
    	var pdc2=$C({"obj":"input","type":"text","name":"sort2[]","size":"20","maxlenght":"255","value":"Effets du sort","onclick":function(){this.value='';}} );
    	$Close(pdc2,monfieldset);
     
     	var pdc3=$C({"obj":"br"} );
        $Close(pdc3,monfieldset);
    }
     
    <!-- Fin ajout champs sorts-->
    </script>
     
    <!-- Calcul des caract du profil-->
    <script type="text/javascript">
    function computeResult(colonne) 
    {
    	var elmt_form = document.getElementById('form1');
    	var resultat  = elmt_form.elements['result' + colonne];
     
    	var value1 = elmt_form.elements[colonne + '1'].value;
    	var value2 = elmt_form.elements[colonne + '2'].value;
    	var value3 = elmt_form.elements[colonne + '3'].value;
     
    	if (!isNaN(value1) && !isNaN(value2) && !isNaN(value3)) {
    		resultat.value = parseInt(value1, 10) + parseInt(value2, 10) + parseInt(value3, 10);
    	}
     
     
     
    	else {
    		alert('Une valeur a mal été enregistrée ou il manque une valeur');
    	}
    }
    </script>
    <!-- Anti-abus des PC-->
    <script type="text/javascript">
    function ma_verification(champ)
    {
        if(parseInt(champ.value,10) >= 0 && parseInt(champ.value,10) <= 3)
         {
             var elmt_form = document.getElementById('form1');
     
              var champ1 = elmt_form.elements['for2'].value;
              var champ2 = elmt_form.elements['end2'].value;
    		  var champ3 = elmt_form.elements['hab2'].value;
    		  var champ4 = elmt_form.elements['char2'].value;
    		  var champ5 = elmt_form.elements['int2'].value;
    		  var champ6 = elmt_form.elements['ini2'].value;
    		  var champ7 = elmt_form.elements['par2'].value;
    		  var champ8 = elmt_form.elements['att2'].value;
     
    		 champ1 = champ1 == "" ? 0 : champ1;
    		 champ2 = champ2 == "" ? 0 : champ2;
    		 champ3 = champ3 == "" ? 0 : champ3;
    		 champ4 = champ4 == "" ? 0 : champ4;
    		 champ5 = champ5 == "" ? 0 : champ5;
    		 champ6 = champ6 == "" ? 0 : champ6;
    		 champ7 = champ7 == "" ? 0 : champ7;
    		 champ8 = champ8 == "" ? 0 : champ8;
     
     
              var total = parseInt(champ1,10) + parseInt(champ2,10) + parseInt(champ3,10) + parseInt(champ4,10) + parseInt(champ5,10) + parseInt(champ6,10) + parseInt(champ7,10) + parseInt(champ8,10);
              if(total > 5)
              {
                   alert("Vous ne disposez que de 5 PC initiaux, vous ne pouvez pas en utiliser plus ;) ");
                   champ.value = 0;
                   champ.focus();
              }
              else
              {
     
     
              }
    		  }
         else
         {
               alert("Vous ne pouvez pas investir plus de 3 PC dans une même caractéristique au départ");
               champ.value = 0;
               champ.focus();        
         }
     
     
    }
     
    </script>
    <!-- Anti-abus des bonus malus de classe-->
    <script type="text/javascript">
    function ma_verification2(champ)
    {
         if(parseInt(champ.value,10) >= -2 && parseInt(champ.value,10) <= 2)
         {
         }
         else
         {
              alert("Le bonus/malus indiqué semble trop élevé");
              champ.value = 0;
              champ.focus();
         }
    }
     
    </script>
    <script language="Javascript">
    // ==================
    //	Activations - Désactivations du champs sorcier
    // ==================
    function GereControle(Controleur, Controle, Masquer) {
    var objControleur = document.getElementById(Controleur);
    var objControle = document.getElementById(Controle);
    	if (Masquer=='1')
    		objControle.style.visibility=(objControleur.checked==true)?'visible':'hidden';
    	else
    		objControle.disabled=(objControleur.checked==true)?false:true;
    	return true;
    }
    </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 correspondant le formulaire et le résultat obtenu:

    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
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    451
    452
    453
    454
    455
    456
    457
    458
    459
    460
    461
    462
    463
    464
    465
    466
    467
    468
    469
    470
    471
    472
    473
    474
    475
    476
    477
    <?php
    function form_meta($wow)
    {
    echo'
    	<form id="form1" method="post" action="'.$wow.'">
    	
    		<table width="950" align="center" border="0" cellspacing="0" cellpadding="0" class="table" style="background-color:#929B98;">
    			<tr>
                <td valign="top" align="right" >Nom & Pr&eacute;nom du personnage: </td>
                <td valign="top" align="left" ><input name="nomperso" type="text" id="nomperso" size="25" maxlength="255" /></td>
              </tr>
    		  <tr>
                <td valign="top" align="right" >Sexe: </td>
                <td valign="top" align="left">
    			<input type="radio" name="sexe" value="Masculin" id="sexemale" /><label for="sexemale">♂</label>
    			<input type="radio" name="sexe" value="Féminin" id="sexefemelle" /> <label for="sexefemelle">♀</label>
    			<input type="radio" name="sexe" value="Indéfini ou asexué" id="sexeindefini" /> <label for="sexeindefinie">			Indéfini</label>
       </p>
    
    </td>
              </tr>
              <tr>
                <td valign="top" align="right" >&Acirc;ge du personnage: </td>
                <td valign="top" align="left"><input name="age" type="text" id="age" size="4" maxlength="4"> ans</td>
              </tr>
    		  <tr>
                <td valign="top" align="right" >Avatar du personnage (adresse image): </td>
                <td valign="top" align="left"><input name="avatar" type="text" id="avatar" size="35" maxlength="255"></td>
              </tr>
              <tr>
               <td valign="top" align="right" >Race </td>
                <td valign="top" align="left"><input name="race" type="text" id="race" size="15" maxlength="255"></td>
              </tr>
              <tr>
                <td valign="top" align="right" >Carri&egrave;re : <br /></td>
                <td valign="top" align="left"><input name="carriere" type="text" id="carriere" /></td>
              </tr>    
              <tr>
                <td valign="top" align="right" >Lieu de d&eacute;part: <br /></td>
                <td valign="top" align="left"><input name="depart" type="text" id="depart"></td>
              </tr>   
    		  <tr>
                <td valign="top" align="right" >Fr&eacute;quence de jeu: <br /></td>
                <td valign="top" align="left"><input name="frequence" type="text" id="frequence"></td>
              </tr>  
              <tr>
                <td valign="top" align="right" >Description physique du personnage (minimum 15 lignes compl&egrave;tes)<br /></td>
                <td valign="top" align="left"><textarea name="physique" cols="50" rows="2" id="physique"></textarea></td>
              </tr>
    		   <tr>
                <td valign="top" align="right" >Description psychologique du personnage (minimum 15 lignes compl&egrave;tes)<br /></td>
                <td valign="top" align="left"><textarea name="psycho" cols="50" rows="2" id="psycho"></textarea></td>
              </tr>
    		  <tr>
                <td valign="top" align="right" >Alignement du personnage: </td>
                <td valign="top" align="left"><input name="align" type="text" id="align" size="25" maxlength="255" /></td>
              </tr>
    		   <tr>
                <td valign="top" align="right" >Histoire du personnage (avant qu\'il ne commence l\'aventure ici) (minimum 20 lignes compl&egrave;tes)<br /></td>
                <td valign="top" align="left"><textarea name="histoire" cols="50" rows="2" id="histoire"></textarea></td>
              </tr>
    		  <tr>
                <td valign="top" align="right" >Vos comp&eacute;tence de d&eacute;part (et leurs descriptions !) (<a href="http://warforum-jdr.com/wiki-v2/doku.php?id=1.5_competences" target=_blank>r&egrave;gles</a>):<br /></td>
                <td valign="top" align="left"><textarea name="comp" cols="50" rows="2" id="comp"></textarea></td>
              </tr>
    		  <tr>
                <td valign="top" align="right" >Votre bourse de pistole de départ: <strong><a title="Souvent 50 pistoles, néanmoins certaines carrières peuvent proposer un petit bonus pécunier au départ. Les Marchands ont quant à eux 4000 pistoles de départ pour couvrir leurs frais d\'ouvertures de magasins et d\'achat d\'objets.">(?)</a></strong><br /></td>
                <td valign="top" align="left"><input name="bourse" type="text" id="bourse" size="4" maxlength="3"> Pistoles</td>
              </tr>
    		  <tr>
                <td valign="top" align="right" >Vos dotations initiales (<a href="http://warhammer-jdr.kalikoba.com/shop.php" target=_blank>La liste des objets par magasin</a>)<strong><a title="Un personnage non marchand a droit à 2 objets raciaux (armes/armures) qui devront être en lien avec son background, et correspondre à sa vocation ! De plus, ils ne devront pas être exagéré (donc pas de hache à 2000 pistoles en commençant). Ces objets seront vérifiés par le MJ en charge du PJ. Il aura également droit à 5 objets usuels libre au choix.  
    
    			
    || Un personnage marchand, lui, ne reçoit pas d\'objets de départ, mais une bourse assez conséquente en contrepartie.">(?)</a></strong>:<br /></td>
                <td valign="top" align="left">
    	<fieldset id=\'Armesarmures\'>
                <legend>Armes et armures:</legend>
                <input type=\'button\' value=\'Ajouter un objet\' onclick="Constructarma()" /><br />
             </fieldset>
    		 
    	<fieldset id=\'objusu\'>
                <legend>Objets usuels:</legend>
                <input type=\'button\' value=\'Ajouter un objet\' onclick="Constructusu()" /><br />
             </fieldset>
    			<br></td>
              </tr>
    		 
    		  <tr>
                <td valign="top" align="right"></td>
                <td valign="top" align="left">
    <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=\'Constructpdc()\' /><br />
             </fieldset>	<br>
              </tr>
    		  <tr>
                <td valign="top" align="right" ><input type="checkbox" id="chkb_10" onClick="GereControle(\'chkb_10\', \'texte_10\', \'1\');" CHECKED>&nbsp;<label for="chkb_10">Décochez si vous n\'êtes pas une carrière magique </label>:<br /></td>
                <td valign="top" align="left"><fieldset id=\'sorts\'>
                <legend>Grimoire de sorts (<a href="http://warforum-jdr.com/wiki-v2/doku.php?id=magie" target=_blank>Domaines de Magie et sorts disponibles</a>):</legend>
                <input type=\'button\' id="texte_10" value=\'Ajouter un sort\' onclick=\'Constructsort()\' /><br />
             </fieldset><br \></td>
              </tr>
    		  <tr>
                <td valign="top" align="right" >Autres (traits particuliers, notes, etc):<br /></td>
                <td valign="top" align="left"><textarea name="autre" cols="50" rows="2" id="autre"></textarea><br \></td>
              </tr>
                </table>
    <!-- debut demarche profil -->
    			<table width="950" align="center" border="0" cellspacing="0" cellpadding="0" class="table" align="justify" style="background-color:#929B98;">
    			<tr >
    				<th scope="col"></th>
    				<th scope="col">FOR</th>
    				<th scope="col">END</th>
    				<th scope="col">HAB</th>
    				<th scope="col">CHAR</th>
    				<th scope="col">INT</th>
    				<th scope="col">INI</th>
    				<th scope="col">PAR</th>
    				<th scope="col">ATT</th>
    			</tr>
    			<tr>
    				<th scope="row">Profil de base</th>
    				<td align="left"><input name="for1" onchange="javascript:computeResult(\'for\');" value="0" size="2" maxlength="2" /></td>
    				<td align="left"><input name="end1" onchange="javascript:computeResult(\'end\');" value="0" size="2" maxlength="2" /> 	</td>
    				<td align="left"><input name="hab1" onchange="javascript:computeResult(\'hab\');" value="0" size="2" maxlength="2" />  				</td>
    				<td align="left"><input name="char1" onchange="javascript:computeResult(\'char\');" value="0" size="2" maxlength="2" />  				</td>
    				<td align="left"><input name="int1" onchange="javascript:computeResult(\'int\');" value="0" size="2" maxlength="2" />  				</td>
    				<td align="left"><input name="ini1" onchange="javascript:computeResult(\'ini\');" value="0" size="2" maxlength="2" />  				</td>
    				<td align="left"><input name="par1" onchange="javascript:computeResult(\'par\');" value="0" size="2" maxlength="2" />  				</td>
    				<td align="left"><input name="att1" onchange="javascript:computeResult(\'att\');" value="0" size="2" maxlength="2" />  				</td>
    				
    
    			</tr>
    			<tr>
    				<th scope="row">Vos 5 PC</th>
    				<td align="left"><input name="for2" onchange="javascript:ma_verification(this); computeResult(\'for\');"
     value="0" size="2" maxlength="2" /> 			</td>
    				<td align="left"><input name="end2" onchange="javascript:ma_verification(this); computeResult(\'end\');"
     value="0" size="2" maxlength="2" /> 	</td>
    				<td align="left"><input name="hab2" onchange="javascript:ma_verification(this); computeResult(\'hab\');"
      value="0" size="2" maxlength="2" />  				</td>
    				<td align="left"><input name="char2" onchange="javascript:ma_verification(this); computeResult(\'char\');"
     value="0" size="2" maxlength="2" />  				</td>
    				<td align="left"><input name="int2" onchange="javascript:ma_verification(this); computeResult(\'int\');"
     value="0" size="2" maxlength="2" />  				</td>
    				<td align="left"><input name="ini2" onchange="javascript:ma_verification(this); computeResult(\'ini\');"
     value="0" size="2" maxlength="2" />  				</td>
    				<td align="left"><input name="par2" onchange="javascript:ma_verification(this); computeResult(\'par\');"
     value="0" size="2" maxlength="2" />  				</td>
    				<td align="left"><input name="att2" onchange="javascript:ma_verification(this); computeResult(\'att\');"
     value="0" size="2" maxlength="2" />  				</td
    			</tr>
    			<tr>
    				<th scope="row">Bonus/malus de classe (malus = nombre pr&eacute;c&eacute;d&eacute; d\'un - !)</th>
    				<td align="left"><input name="for3" onchange="javascript:ma_verification2(this); computeResult(\'for\');" value="0" size="2" maxlength="2" />					</td>
    				<td align="left"><input name="end3" onchange="javascript:ma_verification2(this); computeResult(\'end\');" value="0" size="2" maxlength="2" />	</td>
    				<td align="left"><input name="hab3" onchange="javascript:ma_verification2(this); computeResult(\'hab\');" value="0" size="2" maxlength="2" />  				</td>
    				<td align="left"><input name="char3" onchange="javascript:ma_verification2(this); computeResult(\'char\');" value="0" size="2" maxlength="2" />  				</td>
    				<td align="left"><input name="int3" onchange="javascript:ma_verification2(this); computeResult(\'int\');" value="0" size="2" maxlength="2" />  				</td>
    				<td align="left"><input name="ini3" onchange="javascript:ma_verification2(this); computeResult(\'ini\');" value="0" size="2" maxlength="2" />  				</td>
    				<td align="left"><input name="par3" onchange="javascript:ma_verification2(this); computeResult(\'par\');" value="0" size="2" maxlength="2" />  				</td>
    				<td align="left"><input name="att3" onchange="javascript:ma_verification2(this); computeResult(\'att\');" value="0" size="2" maxlength="2" />  				</td
    			</tr>
    			<tr>
    				<th scope="row">Profil final</th>
    				<td align="left"><input id="resultfor" name="resultfor" size="2" maxlength="2" readonly="readonly" /></td>
    				<td align="left"><input id="resultend" name="resultend" size="2" maxlength="2" readonly="readonly" /></td>
    				<td align="left"><input id="resulthab" name="resulthab" size="2" maxlength="2" readonly="readonly" /></td>
    				<td align="left"><input id="resultchar" name="resultchar" size="2" maxlength="2" readonly="readonly" />			  				</td>
    				<td align="left"><input id="resultint" name="resultint" size="2" maxlength="2" readonly="readonly" /></td>
    				<td align="left"><input id="resultini" name="resultini" size="2" maxlength="2" readonly="readonly" /></td>
    				<td align="left"><input id="resultpar" name="resultpar" size="2" maxlength="2" readonly="readonly" /></td>
    				<td align="left"><input id="resultatt" name="resultatt" size="2" maxlength="2" readonly="readonly" /></td>
    				
    
    			</tr>
    		</table><br \>
    		<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
     
    	$nomperso = $_POST['nomperso'];
    	$avatar = $_POST['avatar'];
    	$age = $_POST['age'];
    	$sexe = $_POST['sexe'];
    	$race = $_POST['race'];
    	$carriere = $_POST['carriere'];
    	$depart = $_POST['depart'];
    	$frequence = $_POST['frequence'];
    	$physique = $_POST['physique'];
    	$psycho = $_POST['psycho'];
    	$align = $_POST['align'];
    	$histoire = $_POST['histoire'];	
    	$comp = $_POST['comp'];
    	$bourse = $_POST['bourse'];
    	// Recup variables inventaires //
    	$i=-1;
    	while($_POST['arma1'][++$i])
    	{
        $arma1[] = $_POST['arma1'][$i];
    	}
    	$i=-1;
    	while($_POST['arma2'][++$i])
            {
        $arma2[] = $_POST['arma2'][$i];
    	}
    	$i=-1;
    	while($_POST['arma3'][++$i])
            {
        $arma3[] = $_POST['arma3'][$i];
    	}
    	$i=-1;
    	while($_POST['usu1'][++$i])
            {
        $usu1[] = $_POST['usu1'][$i];
    	}
    	// Fin recup variables inventaire //
    	// Recup variables PDC //
    	$i=-1;
    	while($_POST['pdcname1'][++$i])
    	{
        $pdcname1[] = $_POST['pdcname1'][$i];
    	}
    	$i=-1;
    	while($_POST['pdcname2'][++$i])
            {
        $pdcname2[] = $_POST['pdcname2'][$i];
    	}
    	// Fin recup variables PDC //
    	// Recup variables sorts //
    	$i=-1;
    	while($_POST['sort1'][++$i])
    	{
        $sort1[] = $_POST['sort1'][$i];
    	}
    	$i=-1;
    	while($_POST['sort2'][++$i])
            {
        $sort2[] = $_POST['sort2'][$i];
    	}
    	// Fin recup variables sorts //
    	$autre = $_POST['autre'];
    	$resultfor = $_POST['resultfor'];
    	$resultend = $_POST['resultend'];
    	$resulthab = $_POST['resulthab'];
    	$resultchar = $_POST['resultchar'];
    	$resultint = $_POST['resultint'];
    	$resultini = $_POST['resultini'];
    	$resultpar = $_POST['resultpar'];
    	$resultatt = $_POST['resultatt'];
    	$enc1 = $resultend / 2;
    	$enc2 = $enc1 + 1;
    	$enc2 = floor($enc2);
    	$pv = $resultend * 5;
     
    echo 'Fenêtre n°1 avec le code à copier sur le forum: <form method="post" action=""><textarea name="code" onFocus="select()" rows="20" cols="80" readonly="readonly">
    
    Nom et Prénom: '.stripslashes($nomperso).'
    Sexe: '.stripslashes($sexe).'
    Age:  '.stripslashes($age).' ans
    Race: '.stripslashes($race).'
    Carrière: '.stripslashes($carriere).'
    Lieu/ville de départ: '.stripslashes($depart).'
    Fréquence de jeu: '.stripslashes($frequence).'
    Profil:  FOR '.stripslashes($resultfor).' / END '.stripslashes($resultend).' / HAB '.stripslashes($resulthab).' / CHAR '.stripslashes($resultchar).' / INT '.stripslashes($resultint).' / INI '.stripslashes($resultini).' / PAR '.stripslashes($resultpar).' / ATT '.stripslashes($resultatt).' / PV '.stripslashes($pv).'/'.stripslashes($pv).'
    
    <hr />
    
    <div style="text-align: center;">Description physique :</div>
    '.stripslashes($physique).'
    
    <div style="text-align: center;">Description psychologique :</div>
    '.stripslashes($psycho).'
    Alignement : '.stripslashes($align).'
    
    <div style="text-align: center;">Historique :</div>
    '.stripslashes($histoire).'
    
    <hr />
    
    Compétences : pas encore codé, visible sur la fiche
    
    Bourse: '.stripslashes($bourse).' Pistoles || Autres :
    Inventaire:
    pas encore codé, visible sur la fiche
    
    <hr />
    
    Autres:
    
    '.stripslashes($autre).'
    
    <hr />
    <hr />
    
    <div style="text-align: center;">Code pour fiche
    </div>
    Code :
    
     
     
    <html><p style="text-align: center; font-family: verdana,geneva;  font-size: large; font-weight: bold; color: #6a94bd; text-decoration: underline;"></html>Informations générales sur le personnage :<html></p><center></html>
     
    |< 50em >|
    |  **Nom et Prénom:**  |  '.stripslashes($nomperso).'   |  <html><img src="'.stripslashes($avatar).'" /></html>  | 
    |  **Age:**   |  '.stripslashes($age).' ans    |  :::  |
    |  **Sexe: **  |    '.stripslashes($sexe).'   |  :::  | 
    |  **Race: **  |   '.stripslashes($race).'   |  :::  | 
    |  **Carrière: **  |  '.stripslashes($carriere).'  |  :::  | 
    |  **Lieu/ville de départ:**   |  '.stripslashes($depart).'  |   :::  |
    |  **Fréquence de jeu:**   |  '.stripslashes($frequence).'  |   :::  |
    |  **MJ:**   |  **à compléter**  |   :::  |
    <html><br></html>
     
     
    ^  FOR         ^  END           ^  HAB                            ^  CHAR                            ^  INT                            ^  INI                            ^  ATT                            ^  PAR                           ^  PV                            ^
    |  '.stripslashes($resultfor).'   |  '.stripslashes($resultend).'     |  '.stripslashes($resulthab).'                      |  '.stripslashes($resultchar).'                      |  '.stripslashes($resultint).'                      |  '.stripslashes($resultini).'                      |  '.stripslashes($resultpar).'                      |  '.stripslashes($resultatt).'                      |  '.stripslashes($pv).'/'.stripslashes($pv).'                      | 
     
    <html><br></html>
    | **XP disponible:**  |  0     | 
    | **PC dépensés:**  |    5     | 
    | **PC disponibles:**  |   0   | 
    <html><br></center></html>
     
     
    ----
    ----
    <html><br></html>
    <html><img align="right" src="http://warforum-jdr.com/images/imgfiches/barre2.jpg" /></html>
    <html><p style="text-align: center; font-family: verdana,geneva;  font-size: large; font-weight: bold; color: #6a94bd; text-decoration: underline;"></html>Description physique :<html></p></html>
     
    '.stripslashes($physique).'
     
     
    <html><p style="text-align: center; font-family: verdana,geneva;  font-size: large; font-weight: bold; color: #6a94bd; text-decoration: underline;"></html>Description psychologique :<html></p></html>
     
    '.stripslashes($psycho).'
     
    __Alignement :__ '.stripslashes($align).'
     
     
    <html><p style="text-align: center; font-family: verdana,geneva;  font-size: large; font-weight: bold; color: #6a94bd; text-decoration: underline;"></html>Historique du personnage :<html></p></html>
     
    '.stripslashes($histoire).'
     
     
    <html><br></html>
     
    ----
    ----
    <html><br></html>
     
    <html><img align="left" src="http://warforum-jdr.com/images/imgfiches/barre4.jpg" /></html>  <html><p style="text-align: center; font-family: verdana,geneva;  font-size: large; font-weight: bold; color: #6a94bd; text-decoration: underline;"></html>Compétences :<html></p></html>
     
    '.stripslashes($comp).'
     
    <html><br></html>
    <html><br></html>
    <html><br></html>
    <html><br></html>
    <html><br></html>
    <html><br></html>
     
     
    ----
    ----
    <html><br></html>
     
    <html><center></html>
    <html><img src="http://warforum-jdr.com/images/imgfiches/barre3.jpg" /></html>
    <html><p style="font-family: verdana,geneva;  font-size: large; font-weight: bold; color: #6a94bd; text-decoration: underline;"></html>Inventaires et biens du personnage:<html></p></html>
     
     
    |  **Bourse:**  |  '.stripslashes($bourse).' Pistoles || Autres : 20 Jetons de Nowel (pour event Nowel) |
    <html><br></html>
    |< 50em >|
    ^  Inventaire (Encombrement: '.stripslashes($enc2).' )                          ^^^^^';
    if(empty($arma1[1]))
    { echo '';
    }
    else{
    foreach(array_keys($arma1) as $val1) {
    	echo '
    |  Icone  |  **'.stripslashes($arma1[$val1]).'**    |  '.stripslashes($arma2[$val1]).'  |  '.stripslashes($arma3[$val1]).'  |';
    	}
    }
    if(empty($usu1[1]))
    { echo '';
    }
    else{
    foreach(array_keys($usu1) as $val2) {
    	echo '
    |  Icone  |  **'.stripslashes($usu1[$val2]).'**  |||';
    	}
    }
     
    	if(empty($sort1[1]))
    { echo '';
    }
    else{ echo'|< 50em >|
    ^  Grimoire                          ^^';
    foreach(array_keys($sort1) as $val3) {
    	echo '
    |  **'.stripslashes($sort1[$val3]).'**    |  '.stripslashes($sort2[$val3]).'    |';
    	}
    }
     
     
    echo '
     
    <html></center></html>
     
    <html><br></html>
    ===== Parcours =====
     
    ===Quêtes accomplies===
     
    Nom + lien + récompenses obtenues
     
    === Classes acquises ===
     
    === Voie et Classe en cours d\'apprentissage===
     
    **Voie :**
    <html><br></html>
    **Classe actuelle :** '.stripslashes($carriere).'
     
    === Dévotion religieuse ===
     
    ^  Dieu      ^  Points de dévotions disponibles           ^  Points de dévotions dépensés         ^';
     
    if(empty($pdcname1[1]))
    { echo '';
    }
    else{
    	foreach(array_keys($pdcname1) as $val4) {
    	echo '
    |  **'.stripslashes($pdcname1[$val4]).'**    |  '.stripslashes($pdcname2[$val4]).'  |  0  |';
    	}
    }
     
    echo '
     
     
    ==== Autres ====
     
    __**Au MJ: merci de mettre les éventuels points de croyance dans le cadre ci-dessus**__
     
    
    '.stripslashes($autre).'
    
    </textarea></form>';
     
     
    echo 'Fenêtre n°2 avec le code à copier pour votre signature: <form method=\"post\" action=\"\"><textarea name="codesign" rows="5" cols="70" onFocus="select()" readonly="readonly">
    '.stripslashes($nomperso).', '.stripslashes($carriere).'
    Profil: For '.stripslashes($resultfor).' | End '.stripslashes($resultend).' | Hab '.stripslashes($resulthab).' | Cha '.stripslashes($resultchar).' | Int '.stripslashes($resultint).' | Ini '.stripslashes($resultini).' | Att '.stripslashes($resultatt).' | Par '.stripslashes($resultpar).' | PV '.stripslashes($pv).'
    Lien Fiche personnage: à demander au MJ
    </textarea></form>
    NB: ce code correspond au minimum de ce qu\'on vous demande en signature. Libre à vous d\'ajouter d\'autres informations.
    ';
     
    	echo'
    <br/>
    		<a href="http://warforum-jdr.com">Retour au forum</a>';
     
     
    } 
    ?>
    Merci d'avance de votre aide

  2. #2
    Nouveau membre du Club
    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
    Points : 36
    Points
    36
    Par défaut
    Bonsoir

    Un de mes membres a testé le générateur ce matin, tout fonctionnait. Il vient de le réessayer, il manque les informations entrées relatives à cette partie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    === Dévotion religieuse ===
     
    ^  Dieu      ^  Points de dévotions disponibles           ^  Points de dévotions dépensés         ^';
     
    if(empty($pdcname1[1]))
    { echo '';
    }
    else{
    	foreach(array_keys($pdcname1) as $val4) {
    	echo '
    |  **'.stripslashes($pdcname1[$val4]).'**    |  '.stripslashes($pdcname2[$val4]).'  |  0  |';
    	}
    }
    Et impossible de savoir pourquoi Ne serait-ce pas une histoire de variables en cache ou autre qui gêneraient ? J'avais redémarré l'ordinateur pour voir, ca avait l'air de passer mieux, mais je n'ai pas investigué plus loin

    Merci d'avance

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ton code est parfois inutilement compliqué.

    Par exemple toute ta section // Recup variables inventaires // ne sert en fait à rien.

    Une de tes boucles fait la même chose que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $arma1 = $_POST['arma1'];
    Et encore on pourrait même remplacer toutes les boucles par un
    Et encore ... pourquoi ne pas virer tout ça et utiliser $_POST['arma1'] ?


    Il faudrait de plus que ton code soit plus clairement presenté pour qu'on puisse le relire.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut,
    si tu parles bien du 'page précédente' du navigateur, la seule soluce que je connaisse est de tout stocker en session.
    Vive les roues en pierre

  5. #5
    Nouveau membre du Club
    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
    Points : 36
    Points
    36
    Par défaut
    si tu parles bien du 'page précédente' du navigateur, la seule soluce que je connaisse est de tout stocker en session.
    Oui je parle de ça en effet. Ce serait donc un problème au niveau du stockage des variables entre autres ? Comment faire pour pallier ce problème avec des session en ce cas ? ?

    Ton code est parfois inutilement compliqué.

    Par exemple toute ta section // Recup variables inventaires // ne sert en fait à rien.

    Une de tes boucles fait la même chose que :
    Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $arma1 = $_POST['arma1'];
    Et encore on pourrait même remplacer toutes les boucles par un
    Code :

    Et encore ... pourquoi ne pas virer tout ça et utiliser $_POST['arma1'] ?
    J'avoue que je ne sais pas. C'est le concepteur du script qui me l'a conseillé. N'y connaissant pas grand chose et comme ca avait l'air de fonctionner, j'avais suivi. Pourriez-vous me montrer ce que donne le code avec des extract ou tout autre chose valable plus optimisée que ce que j'ai actuellement ?

    Ton code est parfois inutilement compliqué...
    ..
    Il faudrait de plus que ton code soit plus clairement presenté pour qu'on puisse le relire.
    J'avoue n'avoir pas pensé à ça, ne sachant pas vraiment ce que 'mettre en page correctement ' ce code représente. Pourriez-vous expliquer comment le clarifier ? A part avec des commentaires (j'avoue y avoir pensé mais je n'ai vraiment fait cela :s)

    Merci d'avance de votre aide, ce générateur m'a demandé beaucoup d'efforts, ponctués de nombreux problèmes dont la plupart ont été résolu via l'aide de membres d'ici ^^ Je pensais en avoir fini, malheureusement non apparemment

  6. #6
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Pour ce qui est des sessions je peux pas décortiquer tout ton code mais voici le principe de base :

    page1.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    session_start();
    $_SESSION['t'] = 'gugu';
    <a href="page2.php">page 2</a>
    ?>
    page2.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    session_start();
    ?>
    Si tu fais 'page précédente' sur page2.php tu gardes tes variables et tu peux les réafficher sur page1.php, donc ensuite à toi d'adapter/reconstruire le formulaire en fonction des variables stockées en session. (ca reste dépendant du nav)
    Vive les roues en pierre

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ca peut donner ça côté presentation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (!empty($pdcname1[1])) {
    	foreach(array_keys($pdcname1) as $val4) {
    		echo '|  **'.stripslashes($pdcname1[$val4]).'**    |  '.stripslashes($pdcname2[$val4]).'  |  0  |';
    	}
    }
    C'est également sur les principes que le script est confus : pourquoi ici par exemple on vérifier l'index 1 avant de parcourir tout le tableau ?
    L'index 1 a t'il une fonction particuliere ?
    Si oui, c'est une facon tordue de procéder.

    Tu remarqueras qu'au passage je retire le cas avec le cas echo vide qui puisqu'il ne produit rien, ne sert a rien.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Nouveau membre du Club
    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
    Points : 36
    Points
    36
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (!empty($pdcname1[1])) {
    	foreach(array_keys($pdcname1) as $val4) {
    		echo '|  **'.stripslashes($pdcname1[$val4]).'**    |  '.stripslashes($pdcname2[$val4]).'  |  0  |';
    	}
    }
    Je lis ce code comme: si la variable est vide, on affiche du texte contenant cette variable. Mais cette variable n'étant pas vide puisque remplie par l'utilisateur, ca ne s'affichera pas, si ? :s

    L'index 1 a t'il une fonction particuliere ?
    Le [1] ? Je suppose que c'est la première entrée de chaque fieldset contenant les champs ajoutés dynamiquement, donc on le lit, s'il est nul ca voudrait dire que l'utilisateur n'a pas utilisé le fieldset ?

    Tu remarqueras qu'au passage je retire le cas avec le cas echo vide qui puisqu'il ne produit rien, ne sert a rien.
    Ben en fait j'avais fais la structure:

    Si la variable est vide, afficher "rien du tout", donc des lignes vides -> utilisation d'un echo vide :s
    Sinon, afficher la ligne contenant les valeurs

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    De plus, je lis votre code comme: si pdcname[1] est vide, afficher le foreach. Mais si pdcname[1] n'est pas vide, rien ne s'affiche alors ? :s
    Non c'est l'inverse, c'est !empty()

    Si la variable est vide, afficher "rien du tout", donc des lignes vides
    Non ca n'affiche rien du tout, pas une ligne vide.
    Si ca n'affiche rien, ca ne sert a rien.

    donc on le lit, s'il est nul ca voudrait dire que l'utilisateur n'a pas utilisé le fieldset ?
    S'il n'a pas rempli le premier mais les autres, on n'affiche rien.
    Mais s'il a rempli le premier mais pas les autres, on affiche ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Nouveau membre du Club
    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
    Points : 36
    Points
    36
    Par défaut
    Non c'est l'inverse, c'est !empty()
    D'accord, la différence subtile du ! m'a échappé ^^ Autant pour moi, du coup if..else est obsolète.


    S'il n'a pas rempli le premier mais les autres, on n'affiche rien.
    Mais s'il a rempli le premier mais pas les autres, on affiche ?
    Par principe, on ne peut avoir des champs 2,3,4,... si il n'y a pas un champs 1
    Donc s'il n'a pas rempli le premier, il n'y a pas d'autres, donc on affiche rien en effet.

    Mais s'il a rempli le premier, on affiche le premier, et s'il y a des autres, on les affiche aussi à la suite.

    Le script original est là:
    http://www.developpez.net/forums/d53...s+pas+que+form

    Un membre vient d'essayer, il lui manque encore le passage avec les variables pdcname, mais pas le reste.

    Quant à moi, ca varie. Je viens d'essayer avec votre code !empty (ci dessous) en remplissant chaque champs dynamique, résultat: seuls les $sort s'affichent

    Donc là mon code donne avec le !empty:

    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
    |< 50em >|
    ^  Inventaire (Encombrement: '.stripslashes($enc2).' )                          ^^^^^';
    if (!empty($arma1[1])) {
    foreach(array_keys($arma1) as $val1) {
    	echo '
    |  Icone  |  **'.stripslashes($arma1[$val1]).'**    |  '.stripslashes($arma2[$val1]).'  |  '.stripslashes($arma3[$val1]).'  |';
    	}
    }
     
     
    if(empty($usu1[1])) { 
    	foreach(array_keys($usu1) as $val2) {
    	echo '
    |  Icone  |  **'.stripslashes($usu1[$val2]).'**  |||';
    	}
    }
     
    echo'
    |< 50em >|
    ^  Grimoire                          ^^';
     
    if (!empty($sort1[1])) {
    	foreach(array_keys($sort1) as $val3) {
    		echo '
    |  **'.stripslashes($sort1[$val3]).'**    |  '.stripslashes($sort2[$val3]).'  |';
    	}
    }
     
    if (!empty($pdcname1[1])) {
    	foreach(array_keys($pdcname1) as $val4) {
    		echo '|  **'.stripslashes($pdcname1[$val4]).'**    |  '.stripslashes($pdcname2[$val4]).'  |  0  |';
    	}
    }
    Et ca fonctionne à moitié encore Incompréhensible
    Est-ce corrigible sans passer par des sessions à votre avis ?

    La page test avec le code ci dessus:

    http://warforum-jdr.com/genprez/presentationtest.php

    A noter que les input normaux ne posent pas problèmes (c'est l'issue de secours si le problème n'est pas réglé, passer à des input normaux sans génération dynamiques de champs )

  11. #11
    Nouveau membre du Club
    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
    Points : 36
    Points
    36
    Par défaut
    Le script n'est pas incriminé dans le problème.

    En passant le formulaire en get au lieu de poste, l'URL chargée est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://warforum-jdr.com/genprez/presentation.php?nomperso=&age=&avatar=&race=&carriere=&depart=&frequence=&physique=&psycho=&align=&histoire=&comp=&bourse=&arma1[]=Epee&arma2[]=20&arma3[]=10&usu1[]=Lampe&pdcname1[]=Sigmar&pdcname2[]=20&sort1[]=Boule+de+feu&sort2[]=10&autre=&for1=0&end1=0&hab1=0&char1=0&int1=0&ini1=0&par1=0&att1=0&for2=0&end2=0&hab2=0&char2=0&int2=0&ini2=0&par2=0&att2=0&for3=0&end3=0&hab3=0&char3=0&int3=0&ini3=0&par3=0&att3=0&resultfor=&resultend=&resulthab=&resultchar=&resultint=&resultini=&resultpar=&resultatt=#
    On voit en effet que les valeurs passent correctement. Donc c'est pas le script, c'est côté PHP le problème :s

    On me conseille de faire un var_dump donc je fais un var_dump:
    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
    	// Recup variables inventaires //
    	$i=-1;
    	while($_POST['arma1'][++$i])
    	{
        $arma1[] = $_POST['arma1'][$i];
    	}
    	$i=-1;
    	while($_POST['arma2'][++$i])
            {
        $arma2[] = $_POST['arma2'][$i];
    	}
    	$i=-1;
    	while($_POST['arma3'][++$i])
            {
        $arma3[] = $_POST['arma3'][$i];
    	}
    	$i=-1;
    	while($_POST['usu1'][++$i])
            {
        $usu1[] = $_POST['usu1'][$i];
    	}
    	var_dump($arma1);
    	var_dump($arma2);
    	var_dump($arma3);
    	var_dump($usu1);
    	// Fin recup variables inventaire //
    	// Recup variables PDC //
    	$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);
    	// Fin recup variables PDC //
    	// Recup variables sorts //
    	$i=-1;
    	while($_POST['sort1'][++$i])
    	{
        $sort1[] = $_POST['sort1'][$i];
    	}
    	$i=-1;
    	while($_POST['sort2'][++$i])
            {
        $sort2[] = $_POST['sort2'][$i];
    	}
    	var_dump($sort1);
    	var_dump($sort2);
    	// Fin recup variables sorts //
    j'entre:



    j'obtiens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array(1) { [0]=>  string(4) "Epee" } array(1) { [0]=>  string(11) "Arme 1 main" } array(1) { [0]=>  string(2) "20" } array(1) { [0]=>  string(5) "Lampe" } array(1) { [0]=>  string(6) "Sigmar" } array(1) { [0]=>  string(2) "20" } array(1) { [0]=>  string(12) "Boule de feu" } array(1) { [0]=>  string(2) "20" }
    Donc apparemment ca passe c'est récupéré correctement niveau variables (normalement). Et ben non:



    Et suivant les gens, c'est des $ différents qui manquent, c'est aléatoire

  12. #12
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Comme je te l'ai dit je crois que tu n'as pas d'autre choix que de tester avec une session. Tu testes si tes valeurs existent en session, si oui tu crées les input supplémentaires. Normalement FF comprendra cela et IE sans doute aussi.
    Vive les roues en pierre

  13. #13
    Nouveau membre du Club
    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
    Points : 36
    Points
    36
    Par défaut
    Apparemment ce serait une mauvaise utilisation des array, donc si possible de ne pas faire avec session je prend ^^ Si pas, je devrais essayer avec session.

    Le code a été un peu optimisé au niveau des $_POST[$variable].

    Voyez:

    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
    // Recup variables inventaires //
     
    	$arma1=array();
    	if (isset($_POST['arma1']))
    	{
    	foreach($_POST['arma1'] as $index =>$value1)
    	{
        $arma1[] = $value1;
    	}
    					 }
     
    	$arma2=array();
    	if (isset($_POST['arma2']))
    					 {
    	foreach($_POST['arma2'] as $index =>$value2)
    	{
        $arma2[] = $value2;
    	}
    					 }
     
    	$arma3=array();
    	if (isset($_POST['arma3']))
    					 {
    	foreach($_POST['arma3'] as $index =>$value3)
    	{
        $arma3[] = $value3;
    	}
    					 }
     
    	$usu1=array();
    	if (isset($_POST['usu1']))
    					 {
    	foreach($_POST['usu1'] as $index =>$value4)
    	{
        $usu1[] = $value4;
    	}
    					 }
    	var_dump($arma1);
    	var_dump($arma2);
    	var_dump($arma3);
    	var_dump($usu1);
    	// Fin recup variables inventaire //
    	// Recup variables PDC //
     
    	$pdcname1=array();
    	if (isset($_POST['pdcname1']))
    					 {
    	foreach($_POST['pdcname1'] as $index =>$value5)
    	{
        $pdcname1[] = $value5;
    	}
    					 }
     
    	$pdcname2=array();
    	if (isset($_POST['pdcname2']))
    					 {
    	foreach($_POST['pdcname2'] as $index =>$value6)
    	{
        $pdcname2[] = $value6;
    	}
    					 }
    	var_dump($pdcname1);
    	var_dump($pdcname2);
    	// Fin recup variables PDC //
    	// Recup variables sorts //
     
    	$sort1=array();
    	if (isset($_POST['sort1']))
    					 {
    	foreach($_POST['sort1'] as $index =>$value7)
    	{
        $sort1[] = $value7;
    	}
    					 }
     
    	$sort2=array();
    	if (isset($_POST['sort2']))
    					 {
    	foreach($_POST['sort2'] as $index =>$value8)
    	{
        $sort2[] = $value8;
    	}
    					 }
    	var_dump($sort1);
    	var_dump($sort2);
    	// Fin recup variables sorts //
    La zone qui pose problème:

    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
    ^  Inventaire (Encombrement: '.stripslashes($enc2).' )                          ^^^^^';
    if (!empty($arma1[1])) {
    foreach(array_keys($arma1) as $val1) {
    	echo '
    |  Icone  |  **'.stripslashes($arma1[$val1]).'**    |  '.stripslashes($arma2[$val1]).'  |  '.stripslashes($arma3[$val1]).'  |';
    	}
    }
     
     
    if(empty($usu1[1])) { 
    	foreach(array_keys($usu1) as $val2) {
    	echo '
    |  Icone  |  **'.stripslashes($usu1[$val2]).'**  |||';
    	}
    }
     
    echo'
     
    |< 50em >|
    ^  Grimoire                          ^^';
     
    if (!empty($sort1[1])) {
    	foreach(array_keys($sort1) as $val3) {
    		echo '
    |  **'.stripslashes($sort1[$val3]).'**    |  '.stripslashes($sort2[$val3]).'  |';
    	}
    }
     
    echo'
     
    === Dévotion religieuse ===
     
    ^  Dieu      ^  Points de dévotions disponibles           ^  Points de dévotions dépensés         ^';
     
    if (!empty($pdcname1[1])) {
    	foreach(array_keys($pdcname1) as $val4) {
    		echo '|  **'.stripslashes($pdcname1[$val4]).'**    |  '.stripslashes($pdcname2[$val4]).'  |  0  |';
    	}
    }
    Je re-exemplifie mon problème:

    j'entre:



    j'obtiens via les var_dump:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array(1) { [0]=>  string(4) "Epee" } array(1) { [0]=>  string(11) "Arme 1 main" } array(1) { [0]=>  string(2) "20" } array(1) { [0]=>  string(5) "Lampe" } array(1) { [0]=>  string(6) "Sigmar" } array(1) { [0]=>  string(2) "20" } array(1) { [0]=>  string(12) "Boule de feu" } array(1) { [0]=>  string(2) "20" }
    Donc apparemment ca passe c'est récupéré correctement niveau variables (normalement), donc le formulaire en lui même tout comme le script ne seraient pas en tort. C'est après que ca plante:



    Et suivant les gens, c'est des $ différents qui manquent, c'est aléatoire.

    Essayez par vous-même:
    http://warforum-jdr.com/genprez/presentationtest.php

    Et cela ne plante que pour les champs qui s'ajoutent via un bouton ajouter.
    On me dit que ce serait un problème avec les array, mais je n'y connais rien grand chose encore niveau array :s

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est bien ce que je te disais.
    Ton test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!empty($arma1[1])) {
    n'a pas de sens.

    si tu ajoutes une arme "epée" tu obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array(1) { [0]=>  string(4) "Epee"
    $arma1[1] n'existe pas.

    De plus tu utilises toujours tes abominables et inutiles boucles while.
    Tu peux les supprimer complétement et directement utiliser $_POST
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($_POST['arma1']) as $key=>$value) {
    	echo '|  Icone  |  **'.htmlentities($value).'**    |  '.htmlentities($_POST['arma2'][$key]).'  |  '.htmlentities($_POST['arma3'][$key]).'  |';
    	}
    Tu remarques au passage que j'utilise htmlentities() ; si tu as un problème de / ca se règle en configurant les magic_quotes, ou au pire en les supprimant globalement dans $_POST (voir la doc a ce sujet) et pas en retirant manuellement sur chaque valeur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Nouveau membre du Club
    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
    Points : 36
    Points
    36
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!empty($sort1[1])) {
    ne sert à rien en effet car c'est comme s'il voulait vérifier une deuxième valeur. Mais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!empty($sort1[0])) {
    Si, non ? On commence bien à [0] dans le tableau comme le montre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array(1) { [0]=>  string(4) "Epee"
    cela vérifierait si une première valeur existe, non ?

    Enfin, c'est vrai que bon, c'est bête de coder ça parce que je demande de vérifier si une valeur n'est pas vide pour afficher ce qu'elle contient si en effet elle n'est pas vide. Mais de base, si elle est vide, rien ne sera affiché, donc la vérification fait redondance c'est ce que vous vouliez me faire comprendre ? ^^

    Donc je devrais remplacer par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (!empty($arma1[1])) {
    foreach(array_keys($arma1) as $val1) {
    	echo '
    |  Icone  |  **'.stripslashes($arma1[$val1]).'**    |  '.stripslashes($arma2[$val1]).'  |  '.stripslashes($arma3[$val1]).'  |';
    	}
    }
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($_POST['arma1']) as $key=>$value) {
    	echo '|  Icone  |  **'.htmlentities($value).'**    |  '.htmlentities($_POST['arma2'][$key]).'  |  '.htmlentities($_POST['arma3'][$key]).'  |';
    	}
    ?

    En ajoutant un indice après value et key comme plusieurs endroits utiliseraient ce squelette de code, mais n'étant pas liés entre eux pour éviter les conflits, comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    foreach($_POST['arma1']) as $key1=>$value1) {
    	echo '|  Icone  |  **'.htmlentities($value1).'**    |  '.htmlentities($_POST['arma2'][$key1]).'  |  '.htmlentities($_POST['arma3'][$key1]).'  |';
    	}
     
    foreach($_POST['usu1']) as $key2=>$value2) {
    	echo '|  Icone  |  **'.htmlentities($value2).'**  |||';
    	}
    ?

    Edit:

    Essai sous IE très très mauvais
    le var_dump:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array(0) { } array(0) { } array(0) { } array(0) { } array(0) { } array(0) { } array(0) { } array(0) { }
    Essais sous Google Chrome: même résultat que sur Firefox: var_dump ok mais le reste plante comme d'habitude

  16. #16
    Nouveau membre du Club
    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
    Points : 36
    Points
    36
    Par défaut
    Suite à une mise à jour de l'auteur du script, le code a été modifié

    Les variables:

    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
    // Recup variables inventaires //
     
    	$arma1=array();
    	if (isset($_POST['arma1']))
    	{
    	foreach($_POST['arma1'] as $index =>$value1)
    	{
        $arma1[] = $value1;
    	}
    					 }
     
    	$arma2=array();
    	if (isset($_POST['arma2']))
    					 {
    	foreach($_POST['arma2'] as $index =>$value2)
    	{
        $arma2[] = $value2;
    	}
    					 }
     
    	$arma3=array();
    	if (isset($_POST['arma3']))
    					 {
    	foreach($_POST['arma3'] as $index =>$value3)
    	{
        $arma3[] = $value3;
    	}
    					 }
     
    	$usu1=array();
    	if (isset($_POST['usu1']))
    					 {
    	foreach($_POST['usu1'] as $index =>$value4)
    	{
        $usu1[] = $value4;
    	}
    					 }
    	var_dump($arma1);
    	var_dump($arma2);
    	var_dump($arma3);
    	var_dump($usu1);
    	// Fin recup variables inventaire //
    	// Recup variables PDC //
     
    	$pdcname1=array();
    	if (isset($_POST['pdcname1']))
    					 {
    	foreach($_POST['pdcname1'] as $index =>$value5)
    	{
        $pdcname1[] = $value5;
    	}
    					 }
     
    	$pdcname2=array();
    	if (isset($_POST['pdcname2']))
    					 {
    	foreach($_POST['pdcname2'] as $index =>$value6)
    	{
        $pdcname2[] = $value6;
    	}
    					 }
    	var_dump($pdcname1);
    	var_dump($pdcname2);
    	// Fin recup variables PDC //
    	// Recup variables sorts //
     
    	$sort1=array();
    	if (isset($_POST['sort1']))
    					 {
    	foreach($_POST['sort1'] as $index =>$value7)
    	{
        $sort1[] = $value7;
    	}
    					 }
     
    	$sort2=array();
    	if (isset($_POST['sort2']))
    					 {
    	foreach($_POST['sort2'] as $index =>$value8)
    	{
        $sort2[] = $value8;
    	}
    					 }
    	var_dump($sort1);
    	var_dump($sort2);
    	// Fin recup variables sorts //
    Le code qui donne le texte:

    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
    ^  Inventaire (Encombrement: '.stripslashes($enc2).' )                          ^^^^^';
    if (!empty($arma1[0])) {
    foreach($arma1 as $index) {
    	echo '
    |  Icone  |  **'.stripslashes($arma1[$index]).'**    |  '.stripslashes($arma2[$index]).'  |  '.stripslashes($arma3[$index]).'  |';
    	}
    }
     
     
    if(!empty($usu1[0])) { 
    	foreach($usu1 as $index) {
    	echo '
    |  Icone  |  **'.stripslashes($usu1[$index]).'**  |||';
    	}
    }
     
     
    echo'
    <html><br></html>
     
    |< 50em >|
    ^  Grimoire                          ^^';
     
    if (!empty($sort1[0])) {
    	foreach($sort1 as $index) {
    		echo '
    |  **'.stripslashes($sort1[$index]).'**    |  '.stripslashes($sort2[$index]).'  |';
    	}
    }
     
     
     
    echo '
     
    <html></center></html>
     
    <html><br></html>
    ===== Parcours =====
     
    ===Quêtes accomplies===
     
    Nom + lien + récompenses obtenues
     
    === Classes acquises ===
     
    === Voie et Classe en cours d\'apprentissage===
     
    **Voie :**
    <html><br></html>
    **Classe actuelle :** '.stripslashes($carriere).'
     
    === Dévotion religieuse ===
     
    ^  Dieu      ^  Points de dévotions disponibles           ^  Points de dévotions dépensés         ^';
     
    if (!empty($pdcname1[0])) {
    	foreach($pdcname1 as $index) {
    		echo '
    |  **'.stripslashes($pdcname1[$index]).'**    |  '.stripslashes($pdcname2[$index]).'  |  0  |';
    	}
    }

    Marche toujours MAIS j'ai un bon changement si je remplace par exemple

    par

    j'ai désormais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    |  Icone  |  ****    |    |    |
    |  Icone  |  ****    |    |    |
    Qui s'affiche ! Alors qu'avec [1] je n'ai rien du tout !

    En créant X champs, on obtiens X lignes vides de valeurs, mais X lignes quand même qui s'affichent avec le reste du code n'étant pas des valeurs de variables !

    L'idée m'est venu parce que je remarque dans le var_dump des :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array(2) { [0]=>  string(12) "Epée 1 main" [1]=>  string(8) "Vouclier" }
    Cela voudrait dire que "Epée 1 main" correspond dans l'array à [0] si je comprend ? Hors si je met

    Normal que ca ne s'affiche pas puisque je démarrerai le listage un niveau trop haut de [0] ?

    Certes c'est vide. Mais je pense que c'est normal car je pense que c'est à cause de (en faisant la modif [0]):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach($arma1 as $index) {
    ou un truc ainsi. Il doit manquer un incrément ou autre. Bref, il y a quelque chose à creuser là, mais quoi
    Mais on progresse
    J'ai pu corriger le code pour qu'il ressorte correctement à la mise en page (un exemple: http://www.warforum-jdr.com/wiki-v2/...iki:fiche_test)

    Ne reste plus qu'à trouver comment faire s'afficher les valeurs.

    Merci d'avance pour l'aide, à tout le monde. On approche du but ;D

  17. #17
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je me repête mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $arma1=array();
    	if (isset($_POST['arma1']))
    	{
    	foreach($_POST['arma1'] as $index =>$value1)
    	{
        $arma1[] = $value1;
    	}
    fait la même chose que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $arma1 = $_POST['arma1'];
    Dont on peut même se passer totalement en travaillement directement avec $_POST['arma1']
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  18. #18
    Nouveau membre du Club
    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
    Points : 36
    Points
    36
    Par défaut
    D'accord donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	// Recup variables inventaires //
    	$arma1 = $_POST['arma1'];	
    	$arma2 = $_POST['arma2'];
    	$arma3 = $_POST['arma3'];
    	$usu1 = $_POST['usu1'];
    	var_dump($arma1);
    	var_dump($arma2);
    	var_dump($arma3);
    	var_dump($usu1);
    	// Fin recup variables inventaire //
    Les bonnes valeurs sont visibles dans le var_dump, et ce code est optionnel. Mais pour l'autre partie du code alors, quoi utiliser ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    if (!empty($arma1)) {
    foreach($arma1 as $index) {
    	echo '
    |  Icone  |  **'.stripslashes($_POST['arma1'][$index]).'**    |  '.stripslashes($_POST['arma2'][$index]).'  |  '.stripslashes($_POST['arma3'][$index]).'  |';
    	}
    }
     
     
    if(!empty($usu1)) { 
    	foreach($usu1 as $index) {
    	echo '
    |  Icone  |  **'.stripslashes($_POST['usu1'][$index]).'**  |||';
    	}
    }
    ?

  19. #19
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Utilise le code que je t'ai indiqué.
    La tu as fait une bouillie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($_POST['arma1']) as $key=>$value) {
    	echo '|  Icone  |  **'.htmlentities($value).'**    |  '.htmlentities($_POST['arma2'][$key]).'  |  '.htmlentities($_POST['arma3'][$key]).'  |';
    	}
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  20. #20
    Nouveau membre du Club
    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
    Points : 36
    Points
    36
    Par défaut
    C'est juste, j'avais zappé ça au final ^^

    Faut-il un indice après value et key comme plusieurs endroits utiliseraient ce squelette de code, mais n'étant pas liés entre eux pour éviter les conflits, comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    foreach($_POST['arma1']) as $key1=>$value1) {
    	echo '|  Icone  |  **'.htmlentities($value1).'**    |  '.htmlentities($_POST['arma2'][$key1]).'  |  '.htmlentities($_POST['arma3'][$key1]).'  |';
    	}
     
    foreach($_POST['usu1']) as $key2=>$value2) {
    	echo '|  Icone  |  **'.htmlentities($value2).'**  |||';
    	}
    ? Et ne manque-t-il pas une parenthèse ( dans:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach($_POST['usu1']) as $key2=>$value2)
    ? (ou bien en trop)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AC-2007] After Insert qui fonctionne mal une fois sur deux
    Par DamKre dans le forum IHM
    Réponses: 4
    Dernier message: 27/12/2011, 10h29
  2. Page qui s'affiche une fois sur deux.
    Par j.b.snecma dans le forum ASP
    Réponses: 1
    Dernier message: 12/11/2007, 20h29
  3. Réponses: 11
    Dernier message: 27/06/2006, 15h05
  4. le sous formulaire s'affiche une fois sur deux
    Par Math dans le forum Access
    Réponses: 16
    Dernier message: 10/10/2005, 15h25
  5. Pb : malloc qui marche une fois sur deux .... ?
    Par guillaume_pfr dans le forum C
    Réponses: 14
    Dernier message: 21/07/2003, 09h52

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