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

Bibliothèques et frameworks PHP Discussion :

[XML] Problème avec compteur d'enfant.


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Points : 4
    Points
    4
    Par défaut [XML] Problème avec compteur d'enfant.
    Bonjour,

    "Comme projet de fin d'étude, nous avons comme consignes de créer une entreprise (matériels et logiciels) et comme toutes entreprises qui se respectent de nos jours elle se doit de posséder un site web !"

    Mon problème se pose au niveau des choix que l'on peut faire dans une liste déroulante lors de l'inscription. Comme mon site sera proposé en trois langues différentes, je dispose de 3 fichiers xml pour le français, l'anglais et le néerlandais donc je pensais rentrer les valeurs de ma liste comme enfant et par la suite pour récupérer les valeurs, faire un count() pour avoir une valeur à mes options mais le résultat me fait une belle erreur.

    Je n'ai aucune base sur le XML et je vous demanderai donc un peu d'indulgence

    Le fichier XML de la langue française (French.xml):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	<function>Fonction</function>
    <functions>
    	<fun1>Effectuez votre choix…</fun1>
    	<fun2>Achats/Approvisionnement</fun2>
    	<fun3>Administration</fun3>
    	<fun4>Autre</fun4>
    </functions>
    Le fichier Php avec les paramètres (Params.php):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    define("TRAD_FILE_EN",'English.xml');
    define("TRAD_FILE_FR",'French.xml');
    define("TRAD_FILE_NL",'Nederland.xml');
    ?>
    Le fichier Php de mon formulaire d'enregistrement (Formulaire.php):
    1. Appelle de mon fichier XML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    require_once('Params.php');
    $trad = simplexml_load_file(TRAD_FILE_FR);
    $xml = $trad->formInscription;
    ?>
    2. Fonction Count
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    	foreach($xml->functions->function as $fun){
    		echo $fun;
    	}
    ?>
    Merci d'avance pour votre aide

    Ps: les codes sont en annexes.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Quelle est l'erreur concrètement ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Au début il mettait que la valeur contenue dans foreach() était incorrecte, après modification, je n'ai plus rien qui s'affiche.

    Donc, il m'affiche bien "Fonction :" mais ensuite il ne m'affiche plus rien et repart sur la suite de mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php echo $xml->function ?>: 
    		<?php
    				foreach($xml->functions as $fun){
    					echo $fun;
    				}
    		?>

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    J'imagine que tu veux voir les enfants du noeud 'functions' et non ce noeud lui même, dans ce cas, utilise SimpleXMLElement::children.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Merci de tes réponses.

    Voici le corrigé:

    Code du formulaire changé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <select name="test">
    			<?php
    					foreach($xml->functions->fun as $fun){
    						echo "<option value='".$fun["id"]."'";
    						if ($fun["id"] == 0) echo " selected='selected'";
    						echo ">".$fun."</option>";
    					}
    			?></select>
    Code du XML changé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <function>Fonction</function>
    	<functions>
    		<fun id="0">Effectuez votre choix…</fun>
    		<fun id="1">Achats/Approvisionnement</fun>
    		<fun id="2">Administration</fun>
    		<fun id="3">Autre</fun>
    	</functions>

  6. #6
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    La syntaxe suivante est plus lisible, je te conseille de l'utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <select name="test">
    	<?php foreach ($xml->functions->fun as $fun): ?>
    	<option value="<?=$fun['id']?>" <?=($fun['id']==0?'selected="selected"':'')?>>
    		<?=$fun?>
    	</option>
    	<?php endforeach ?>
    </select>

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Merci pour le code mais lorsque je l'applique, il ne me propose plus qu'un choix entre 5 ">" surement une faute de frappe.

  8. #8
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    T'as peu être pas le short open tags actif.

    Tu mets des "<?php echo" en lieu et place des "<?=" et ça devrait coller (c'est dommage c'est un raccourci bien pratique).

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    bon je vais peu faire un plantage(tant pis), mais dit moi benjamin cette syntaxe "<?=" me fait penser à la méthode magique __toString

    http://fr2.php.net/manual/fr/languag...bject.tostring

    à tord ou à raison ?
    Conception / Dev

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Comme j'ai eu mes réponses, je met le sujet comme résolut

  11. #11
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Citation Envoyé par ascito Voir le message
    bon je vais peu faire un plantage(tant pis), mais dit moi benjamin cette syntaxe "<?=" me fait penser à la méthode magique __toString

    http://fr2.php.net/manual/fr/languag...bject.tostring

    à tord ou à raison ?
    A tord. Comme expliqué plus haut, la syntaxe <?= (avec la directive short open tags à On) est un alias de <?php echo tout simplement.

    La méthode magique __toString à exactement le même but qu'en Java à savoir: si l'objet est utilisé dans un contexte de chaîne de caractère, cette méthode sera implicitement appelée pour transformer l'objet en string.

    Exemple:
    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
    class Test {
    	protected $_a;
    	protected $_b;
     
    	public function __construct ($a, $b) {
    		$this->_a = $a;
    		$this->_b = $b;
    	}
     
    	public function __toString () {
    		var_dump(__METHOD__);
    		return "{$this->_a} {$this->_b}";
    	}
    }
     
    $t = new Test(1,2);
     
    var_dump( $t->__toString() ); // appel explicite
    var_dump( (string)$t ); // cast explicite
    var_dump( "$t" ); // cast implicite
    var_dump( "t vaut " . $t ); // cast implicite
    Attention: en PHP 5.1, __toString n'est appelée implicitement qu'avec les fonction echo et print. Ce comportement inadéquat à été corrigé en PHP 5.2.

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

Discussions similaires

  1. Lecture Fichier XML problème avec enfant
    Par Guispeed4262 dans le forum Général Python
    Réponses: 2
    Dernier message: 09/12/2015, 13h54
  2. [Système] Problème avec compteur de téléchargement
    Par Baptiste Wicht dans le forum Langage
    Réponses: 24
    Dernier message: 24/06/2006, 08h21
  3. [FLASH 8] [XML] Problème avec XML.load() asynchrone
    Par SSJ17Vegeta dans le forum Flash
    Réponses: 1
    Dernier message: 20/01/2006, 18h47
  4. [XML] Problème avec &
    Par s3r3nity dans le forum Valider
    Réponses: 5
    Dernier message: 21/12/2005, 14h13
  5. Valider fichier XML : problème avec la DTD
    Par SkIllz2k dans le forum Valider
    Réponses: 2
    Dernier message: 26/04/2005, 17h15

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