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 :

Difficulté de concaténation ou mauvaise définition d'array


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 185
    Par défaut Difficulté de concaténation ou mauvaise définition d'array
    Bonjour à toutes et tous, et, par avance, merci de vos lumières.
    Voici la difficulté rencontrée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if ($_POST['Button'] == 'Enregistrer'){
    	if( !isset( $_POST[''.$compte.'n\''] ) ) $_POST[''.$compte.'n\''] = '';
    	if( !isset( $_POST[''.$compte.'n1\''] ) ) $_POST[''.$compte.'n1\''] = '';
    	if( !isset( $_POST[''.$compte.'n2\''] ) ) $_POST[''.$compte.'n2\''] = '';		
    	$montant = array($_POST[''.$compte.'n\''] , $_POST[''.$compte.'n1\''] , $_POST[''.$compte.'n2\'']);	
    	$codeHtml = '<tr><td class="libelle">'.ucfirst($compte).'</td>
    		<td class="montant">'. $montant[0].'</td>
    		<td class="montant">'. $montant[1].'</td>
    		<td class="montant">'. $montant[2].'</td>
    		</tr>';
    	// '<pre>'.print_r($montant).'</pre>';
            '<pre>'.print_r($_POST).'</pre>';	
    }
    Le résultat de print_r($montant) est vide, mais celui de print_r($_POST) est :
    Array ( [compten] => 1000 [compten1] => 2000 [compten2] => 3000 [Button] => Enregistrer [compten'] => [compten1'] => [compten2'] => )
    Évidemment ce que je souhaite obtenir, c'est $montant[0] = 1000 etc. donc comment faire ? et deuzio, j'ai un tableau vide après "enregistrer" d’où cela peut il provenir ?
    Encore merci à la bonne âme...

  2. #2
    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
    Par défaut
    Quel est ce bazar d'apostrophes et d'antislash ?
    Il faut faire siiiiimple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if ($_POST['Button'] == 'Enregistrer'){
    	$montant[0] =  isset($_POST['compten']) ? $_POST['compten'] : '';
            $montant[1] =  isset($_POST['compten1']) ? $_POST['compten1'] : '';
            $montant[2] =  isset($_POST['compten2']) ? $_POST['compten2'] : '';
     
    	$codeHtml = '<tr>
                    <td class="libelle">'.ucfirst($compte).'</td>
    		<td class="montant">'. $montant[0].'</td>
    		<td class="montant">'. $montant[1].'</td>
    		<td class="montant">'. $montant[2].'</td>
    		</tr>';
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 185
    Par défaut
    Oupps... Dans la précipitation j'ai oublié ça au début du code d’où les apostrophes et antislash.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function record($compte) 
    	{
    En tout cas merci, tu m'a donné des idées...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 185
    Par défaut
    Je ne sais pas si ce code est correct ? mais il fonctionne !
    Merci encore à toi sabotage.

    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
     
    	function record($compte) 
    	{	
    	if( !isset( $codeHtml ) ) $codeHtml = '';
    	if( !isset( $_POST['Button'] ) ) $_POST['Button'] = '';
     
    		if ($_POST['Button'] == 'Enregistrer') 
    		{
    			$montant[0] =  isset($_POST[''.$compte.'n']) ? $_POST[''.$compte.'n'] : '';
            	$montant[1] =  isset($_POST[''.$compte.'n1']) ? $_POST[''.$compte.'n1'] : '';
            	$montant[2] =  isset($_POST[''.$compte.'n2']) ? $_POST[''.$compte.'n2'] : '';	
    			$codeHtml = '<tr><td class="libelle">'.ucfirst($compte).'</td>
    							<td class="montant">'. $montant[0].'</td>
    							<td class="montant">'. $montant[1].'</td>
    							<td class="montant">'. $montant[2].'</td>
    							</tr>';
     
    			 '<pre>montant'.print_r($_POST).'</pre>';		
    		}
    }

  5. #5
    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
    Par défaut
    Même avec une partie variable, il n'y a pas besoin de tout ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function record($compte) {
      if ($_POST['Button'] == 'Enregistrer'){
            $compte .= 'n';
    	$montant[] =  isset($_POST[$compte]) ? $_POST[$compte] : '';
            $montant[] =  isset($_POST[$compte.'1']) ? $_POST[$compte.'1'] : '';
            $montant[] =  isset($_POST[$compte.'2']) ? $_POST[$compte.'2'] : '';
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 185
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Même avec une partie variable, il n'y a pas besoin de tout ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function record($compte) {
      if ($_POST['Button'] == 'Enregistrer'){
            $compte .= 'n';
    	$montant[] =  isset($_POST[$compte]) ? $_POST[$compte] : '';
            $montant[] =  isset($_POST[$compte.'1']) ? $_POST[$compte.'1'] : '';
            $montant[] =  isset($_POST[$compte.'2']) ? $_POST[$compte.'2'] : '';
    Effectivement, on a gagné en lisibilité
    Par contre lorsque j'appelle la fonction plusieurs fois, j'ai un tableau vide dès le 2e appel à la fonction (mais des chiffres exacts pour le 1er )

  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
    Par défaut
    Comment est ton formulaire exactement ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Mauvaise récupération d'array avec serialize
    Par GYK dans le forum Langage
    Réponses: 8
    Dernier message: 28/06/2012, 18h49
  2. [MySQL] concaténer 2 colonnes d'un array
    Par bigs3232 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/12/2011, 20h35
  3. Difficulté à sommer des numpy.arrays
    Par Loïc B. dans le forum Général Python
    Réponses: 4
    Dernier message: 09/12/2009, 10h34
  4. [XL-2002] Type définit par l'utilisateur et array
    Par christophe_fr dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/11/2009, 14h39
  5. Définition d'un produit scalaire pour boost::array
    Par vmfa-2 sven dans le forum Boost
    Réponses: 3
    Dernier message: 13/09/2009, 21h27

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