Partage
  • Partager sur Facebook
  • Partager sur Twitter

Déplier une liste en html angularjs ( et jquery )

Sujet résolu
    7 décembre 2017 à 13:09:07

    Bonjour, 

    Je suis aujourd'hui confronté à un petit soucis et j'aimerais le régler "proprement" , c'est pourquoi je vous sollicite.

    J'ai en base de données une " liste " que je récupère via une requête ajax et en passant aussi par des getters et des setters puis que j'affiche dans un fichier html avec angular ( complexe n'est-ce pas ? ) pour mieux comprendre, voici mon code actuel : 

    fichier.html : 

    	<div class="col-lg-12">
    		<div class="card">
    			<div class="border bgGrisF tac"><h4 class="clrBlanc">Commentaire(s) Gescom</h4></div>
    			<div class="p20">
    				<p><span class="fwb">Commentaires: </span><span dynamic="client.boxcliinfos"></span></p>
    				<div id="seeMore" class="showGescom expanded cp " name="seeMore"><i class="material-icons md-15">expand_more</i> Voir plus ...</div>
    			</div>
    		</div>
    	</div>

    ajax.php 

    switch($action){
    	case 'getClient':
    
    		$client = new Customer ( $customers_id );
    
    		$result['boxcliinfos']        = $client->boxcliinfos();		
    	break;

    script.js 

    app.config(['$routeProvider',
    	function($routeProvider){
    		$routeProvider
    		// Définition des routes
    		.when('/FicheClient/index.php/:client_id/informations/', {
    			templateUrl: 'FicheClient/templates/informations.html',
    			controller: 'FicheClientCtrl'
    		})
    }
    ]);



    Et pour terminer , cutomers.class.php

    //getter
        public function boxcliinfos(){
            return $this->_boxcliinfos;
        }
    
    //setter
        private function setBoxCliInfos( $boxcliinfos ){
            $ligneTab = explode( "\n", $boxcliinfos);
            ksort($ligneTab);
            $tab = array_slice($ligneTab, 0, 10 );
            $tab2 = array_slice( $ligneTab, 10);
            // $this->_boxcliinfos = implode("<br>", $tab2);
            $this->_boxcliinfos = implode("<br>", $tab);
        }

    Ce que je voudrais comme vous le voyez, c'est afficher les 10 premiers résultats par défaut ( $tab = array_slice($ligneTab, 0, 10 ); ). Donc jusqu'ici tout va bien. 

    Maintenant, j'aimerais que lorsque je clique sur la div qui a pour id " seeMore " , que cela affiche le reste des résultats. 

    Seulement, je ne sais pas comment m'y prendre en passant par angular...

    Voici le script qui me permet déjà de faire le " début " : 


    <script>
    	$('.showGescom').click(function(){
    		$(".div-gescom").toggle("slow");
    		$(this).toggleClass("expanded");
    		$('html,body').animate({ scrollTop: $('#seeMore').offset().top + $('window').height()  }, 1000);
    		if($(this).hasClass("expanded")){
    			$(this).html("<i class=\"material-icons md-15\">expand_more</i> Voir plus ...");
    		}else{
    			$(this).html("<i class=\"material-icons md-15\">expand_less</i> Voir moins ...");
    		}
    
    	});
    </script>




    Si vous avez une quelconque aide, je suis preneur,

    Cordialement,

    Devcky

    • Partager sur Facebook
    • Partager sur Twitter

    Déplier une liste en html angularjs ( et jquery )

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown