[ar] [ca] [cpf] [de] [en] [es] [fr] [it]

Ce forum d’entraide est recommandé pour les utilisateurs et utilisatrices occasionnels de SPIP (Système de publication pour l’Internet). Avant de poser une question, faites une recherche sur ce site, consultez les liens utiles. Si vous ne trouvez pas de réponse, postez votre message dans la rubrique appropriée, avec un titre explicite.

Sujets : 24136 Sujets résolus :  39 %

54 visiteurs en ce moment


Accueil > Forums de discussion >  Création de squelettes > Boucle data afficher résultat tableau

Boucle data afficher résultat tableau

par Didine - 7 février 11:52 - Réponse(s) : 3

Bonjour,

j’utilise une classe php pour faire le tri dans un flux xml et ensuite afficher les résultats dans mon article.

Dans mes_fonctions j’ai mis :

<?php
include_spip 
('classes/test_class');

function 
test_class2(){
$kiwi = new Kiwi();
$ref 74;

$tarifs $kiwi->Api1BienTarif($ref);
foreach(
$tarifs as $tarif)
{
  echo 
"<p>ref = $ref : debut = " $tarif[0] . " - fin = " $tarif[1] . " -- prix = " $tarif[2];
}
echo 
"<hr>";


}

?>

Cette classe retourne les résultats dans un tableau.
Les infos apparaissent bien mais en dehors du content de l’article pour le moment.

J’ai créé un modèle avec un filtre qui fait appel à la fonction mais il ne m’affiche que le premier résultat...

Comment rédiger une boucle qui permettrait d’afficher toutes les lignes du tableau comme avec le foreach ?

Merci pour votre aide


  • il faut que la fonction retourne le tableau php

    1. include_spip ('classes/test_class');
    2.  
    3. function test_class2(){
    4. $kiwi = new Kiwi();
    5. $ref = 74;
    6.  
    7. $tarifs = $kiwi->Api1BienTarif($ref);
    8. return $tarifs;}

    Télécharger

    et dans votre modele

    1. <BOUCLE_data(DATA){source table,#VAL|test_class2}>
    2. #CLE -> #VALEUR</br>
    3. </BOUCLE_data>

    Télécharger

    A noter que vous pouvez passer la ref en paramètre du modele

    1. <mon_model|74>

    squelettes/modeles/mon_model.html :

    1. ref: #ENV{id}
    2. [<!--(#REM) Boucler sur le tableau?-->]
    3. <BOUCLE_data(DATA){source table,#ENV{id}|test_class2}>
    4. #CLE -> #VALEUR</br>
    5. </BOUCLE_data>

    Télécharger

    et la fonction :

    1. function test_class2($ref){
    2. if ($ref){
    3. $kiwi = new Kiwi();
    4. return $kiwi->Api1BienTarif($ref);
    5. }
    6. }

    Télécharger


  • Un grand merci pour ces infos tout fonctionne très bien.

    Une dernière question : pour certains éléments à afficher la class php me renvoie un tableau avec une colonne et 11 lignes de résultats.

    la boucle suivante n’affichait rien :

    1. <BOUCLE_data(DATA){source table,#VAL|test_class5} >
    2. <tr>
    3. <td>[(#VALEUR {0})]</td>
    4. <td>[(#VALEUR {1})]</td>
    5. <td>[(#VALEUR {2})]</td>
    6. </tr>
    7. </BOUCLE_data>

    Télécharger

    Du coup j’ai modifié ma boucle :

    1. <BOUCLE_data(DATA){source table,#VAL|test_class5} >
    2. <tr>
    3. <td>#VALEUR</td>
    4. </tr>
    5. </BOUCLE_data>

    Télécharger

    voici ce qui s’affiche :

    074
    8
    Toto

    Mon problème est le suivant : pour la mise en page je ne peux pas mettre les différents résultats de la boucle à des endroits différents dans ma page.

    Comment afficher les infos des lignes indépendamment les unes des autres ?
    Est-ce réalisable ? Faut-il utiliser des filtres ?

    Merci pour votre aide !


  • Bonjour,

    tu peux faire ça au moyen des balises #SET et #GET.
    La boucle servira uniquement à remplir le tableau #SET, et ensuite tu peux afficher ces valeurs n’importe où avec #GET

    1. #SET{valeurs, #ARRAY}
    2. BOUCLE_data(DATA){source table,#VAL|test_class5} >
    3. #SET{valeurs,#GET{valeurs}|push{#VALEUR}}
    4. </BOUCLE_data>
    5.  
    6. <!-- plus loin -->
    7. [(#GET{valeurs/1})]
    8.  
    9. <!-- encore plus loin -->
    10. [(#GET{valeurs/2})]
    11.  
    12. etc.

    Télécharger




Répondre à la question

« Boucle data afficher résultat tableau »

Mots-clés

Vous pouvez étiqueter cette page de forum avec les mots-clés qui vous semblent les plus appropriés ; ils permettront aux prochains visiteurs du site de mieux se repérer :


Installation, mise à jour

Utilisation de l’espace privé

Administration, gestion, configuration du site

Créer ses squelettes

Qui êtes-vous ?