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 :

[Tableaux] 2 noms de champs à partir d'un seul


Sujet :

Langage PHP

  1. #1
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut [Tableaux] 2 noms de champs à partir d'un seul
    Bonjour,

    j'ai une chaine de caractère qui se présente ainsi "bud_mtt19"

    La partir "bud_mtt" est fixe et la partie numérique peut varier de 1 à n.

    Est-il possible de séparer et de récupérer dans 2 champs séparés "bud_mtt" et "19".

    Merci d'avance

  2. #2
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Bonjour,

    Admettons que j'aie bien compris la question. Que penses tu de str_replace()
    en mettant replace à vide
    Quelque chose du genre
    $var = 'bud_mtt19';
    $var_bud = "bud_mtt';
    $var_nbr = str_replace('bud_mtt','',$var);
    Mais je suis peut-être à coté de la plaque!

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    $chaine="bud_mtt1985";

    $taille_chaine=strlen($chaine)-6;

    $partie1=substr($chaine, 0, 7);
    $partie2=substr($chaine, 7,$taille_chaine);

    C'est ce que tu voulais?

  4. #4
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Calitom,

    merci après un teste, c'est je penses ma solution.

    En fait je récupère mon formulaire en method POST comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [id_exercice] => [adr_commentaire] => [bud_mtt9] => [bud_mtt8] => [bud_mtt10] => [bud_mtt11] => [bud_mtt13] => [bud_mtt12] => [bud_mtt14] => [bud_mtt17] => [bud_mtt16] => [bud_mtt15] => [bud_mtt18] => [bud_mtt19] => [bud_mtt20] => [bud_mtt21] => [bud_mtt23] => [bud_mtt25] => [bud_mtt24] => [bud_mtt22] => [bud_mtt26] => [bud_mtt29] => [bud_mtt27] => [bud_mtt28] => [bud_mtt32] => [bud_mtt33] => [bud_mtt34] => [bud_mtt30] => [bud_mtt31] => [bud_mtt35] => [bud_mtt36] => [bud_mtt37] => [bud_mtt40] => [bud_mtt39] => [bud_mtt38] => [bud_mtt42] => [bud_mtt41] => [bud_mtt43] => [bud_mtt48] => [bud_mtt47] => [bud_mtt44] => [bud_mtt46] => [bud_mtt45] => [bouton] => Miseajour )
    Les champs [bud_mtt9] vont de 1 à n et peuvent avoir des montants.

    avec ta solution pour le 1er champ corespondant, j'ai comme résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    partie1 : bud_mtt
    partie2 : 9
    Le n° correspond à une sous catégorie et je n'ai qu'un montant par sous-catégorie.

    Donc je vais pouvoir faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sous_categorie=$partie2;
    $montant=$_POST[".$partie1."".$partie2."];
    Merci

  5. #5
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Les tests c'est super sauf que j'ai testé avec une constante.

    Maintenant je fais comment pour récupérer mes valeurs d'indice de tableau ?

    ça c'est une question qu'elle est bonne

  6. #6
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Bon ben j'ai fait ceci et cela me convient dans le résultat.

    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
    $i=0;
    	foreach($_POST as $POST)
    	{
    	$chaines=array_keys($_POST);
    	$chaine=$chaines[$i];
    	$taille_chaine=strlen($chaine)-6;
    	$partie1=substr($chaine, 0, 7);
    	if($partie1=="bud_mtt")
    	{
    	$partie2=substr($chaine, 7,$taille_chaine);
    	$bud_mtt=$_POST["$partie1$partie2"];
    	$sous_categorie=$partie2;
    	echo "le montant est de $bud_mtt pour la sous-catégorie $sous_categorie";
    	}
    	$i++;
    	}
    Merci beaucoup

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

Discussions similaires

  1. [Talend OPen Studio] Alimenter plusieurs champs à partir d'un seul
    Par kaliadon dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 25/10/2007, 11h05
  2. Réponses: 2
    Dernier message: 08/08/2007, 08h57
  3. Réponses: 2
    Dernier message: 20/01/2007, 20h42
  4. Réponses: 4
    Dernier message: 05/07/2006, 15h47
  5. connaitre les propriétés d'un champ à partir de son nom
    Par toome dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/10/2005, 11h16

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