appel d'un fonction avec bouton dans un composant joomla

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • appel d'un fonction avec bouton dans un composant joomla

    bonjour,
    j'ai développé une méthode (dans la partie modèle du composant) qui me permet de récupérer les valeurs de checkbox lors du click d'un bouton pour être plus claire voici les bouts de code respectif
    Code:
    	public function misejour()
    	{
    	        $cids=JRequest::getVar( 'cid', array(0), '', 'array' );
    			$liste='('.$cids[0]; 
    			for ($i=1; $i < count($cids); $i++) {$liste=$liste.', '.$cids[$i] ;}
    			$liste=$liste.')';
    			return $liste;
    	}
    et voici la vue
    Code:
    <form action="index.php" method="get" action="adminform">
    <?php 
    $i=0;
    foreach($this->item as $data){ 
    echo JHTML::_('grid.id', $i, $data );
    //echo $i;
    ?>
    message:<input type="text" name="titre" value="<?php echo $data; ?>"/> <br/>
    <?php
    $i++;
     }	?>
     <input type="button" value="envoyer" onclick="???????????????" />
     la recup:<input type="text" name="titre" value="<?php echo $this->test['1']; ?>"/>
    </form>
    le problème c'est que j'ignore totalement quoi écrire dans l'action onclick de mon bouton ,j'ai essayé avec un location.href ensuite l'url et ça m'a fait buggé tous le composant
    merci d'avance

  • #2
    Re : appel d'un fonction avec bouton dans un composant joomla

    Mon post n'a pas l'air d’intéresser quelqu'un ou il n'y a personne qui peut me répondre coté développement ici.
    dés que je poste une discussion sur le développement de composant joomla personne ne répond mais c'est quoi ce forum?

    Commentaire


    • #3
      Re : appel d'un fonction avec bouton dans un composant joomla

      c'est quoi ce forum?
      C'est avant tout un forum d'assistance aux utilisateurs de Joomla. Il est vrai qu'assez peu de gens sont développeurs ici.
      Lorsque l'on se cogne la tête contre un pot et que cela sonne creux, ça n'est pas forcément le pot qui est vide.
      Confucius

      Commentaire


      • #4
        Re : appel d'un fonction avec bouton dans un composant joomla

        Envoyé par lesoutier Voir le message
        C'est avant tout un forum d'assistance aux utilisateurs de Joomla. Il est vrai qu'assez peu de gens sont développeurs ici.
        maintenant je comprends pourquoi mes discussion concernant le développement de composant joomla reste sans réponse
        et dans ce cas pouvez vous m'indiquez un forum spécial développeur??

        Commentaire


        • #5
          Re : appel d'un fonction avec bouton dans un composant joomla

          Peut-être le forum de joomla.org ? http://forum.joomla.org/ principalement en anglais.
          Mais il y a quand même ici quelques développeurs qui passent de temps en temps.
          Lorsque l'on se cogne la tête contre un pot et que cela sonne creux, ça n'est pas forcément le pot qui est vide.
          Confucius

          Commentaire


          • #6
            Re : appel d'un fonction avec bouton dans un composant joomla

            J'ai pas vraiment saisi ce que tu voulais faire mais d'après ce que je vois, tu mets ton traitement dans une fonction et tu fais une requête Ajax ?


            Envoyé de mon iPhone à l'aide de Forum Joomla.fr

            Commentaire


            • #7
              Re : appel d'un fonction avec bouton dans un composant joomla

              Envoyé par Milkshek Voir le message
              tu mets ton traitement dans une fonction et tu fais une requête Ajax ?
              en fait j'ai lu ça sur un poste mais, où il fallait ajouter du code ajax avec $doument->adddescription('le code ajax ici') qui s'insère dans la partie view du composant, le problème c'est ce que je n'ai aucune idée du code ajax de la requête ya t'il ici quelq'un qui peut me fournir un exemple facil de requête ajax pour que je puisse y suivre pour réaliser ma requête ou c'est trop demandé pour ce forum?

              Commentaire


              • #8
                Re : appel d'un fonction avec bouton dans un composant joomla

                Je te fais ça demain


                Envoyé de mon iPhone à l'aide de Forum Joomla.fr

                Commentaire


                • #9
                  Re : appel d'un fonction avec bouton dans un composant joomla

                  Par contre j'utilise la librairie JQuery :

                  $.ajax({
                  url: "url/vers/ton/script.php",
                  type: "POST" //ou GET
                  data: {var1: "value1", var2: "value2" }, //Variable à transmettre à ton script si besoin est sinon {}
                  dataType: "html"
                  }).done(function (data) { //data est la variable contenant le retour du script
                  //Traitement du retour
                  });

                  Le script dont tu feras appel devra donc retourner une chaîne de caractère contenant de l'HTML.
                  Si tu veux retourner un tableau, je t'invite alors à utiliser du JSON.
                  Si tu veux plus d'options, etc.. Je te conseilles d'aller directement sur le site de JQuery mais sinon je serais à ta disposition au possible. J'espère que ça t'aidera

                  Commentaire


                  • #10
                    Re : appel d'un fonction avec bouton dans un composant joomla

                    Avant tout, un message pour les modérateurs du site:
                    Mais pourquoi après avoir mis un peu de temps à écrire un message et expliquer et quand je clique sur envoyer la réponse le forum me demande à me ré authentifier et il m'efface mon message????!!!!!!!!!

                    Je reviens au sujet
                    Envoyé par Milkshek Voir le message
                    Par contre j'utilise la librairie JQuery :

                    $.ajax({
                    url: "url/vers/ton/script.php",
                    type: "POST" //ou GET
                    data: {var1: "value1", var2: "value2" }, //Variable à transmettre à ton script si besoin est sinon {}
                    dataType: "html"
                    }).done(function (data) { //data est la variable contenant le retour du script
                    //Traitement du retour
                    });
                    bon ok merci, j'ai adapté cette requête pour mes besoin mais reste un problème pour l'intégration de ce code c-a-d je le met où ce code dans le fichier view avec avec un code comme ceci:
                    Code:
                    		$document = JFactory::getDocument();
                    		if($this->loadjquery == 1){
                    			$document->addScript(JURI::root(true).'/components/com_improvemycity/js/jquery-1.7.1.min.js');
                    		}
                    $document->addScript($.ajax({
                        url: "componenets/com_improvemycity/controller.php",
                        type: "GET",
                        data:  {},
                        dataType: "html"
                    }).done(function (data) { //data est la variable contenant le retour du script
                        //Traitement du retour//???????????par exemple quoi?
                    });
                    soit je le met dans un fichier tout seul .js et je fais l'appel dans ma vue via la balise script
                    j'ai essayé les deux truc il ne marche pas les deux, je ne sais pas si c'est une erreur de syntaxe ou il y a un autre truc pour intégrer une requête ajax??????
                    allez il ne reste plus que ce truc à corriger et ensuite en principe c'est bon tous mes problèmes seront réglé vous ne me reverrez plus sur ce forum!


                    merci

                    Commentaire


                    • #11
                      appel d'un fonction avec bouton dans un composant joomla

                      Bonjour,

                      Alors première chose que je vois c'est qu'il il y a une faute dans ton URL à mon avis : "compenets".

                      Ensuite oui il serait plus judicieux à mon sens de le mettre dans ta vue si il n'y a que ce traitement JS.

                      Le traitement de data serait un parcours d'un tableau en JS ou juste un affichage dans une balise que tu auras au préalable créée :
                      $("#baliseX").append(data); //si retour d'une chaîne de caractères

                      Dans le cas d'une mise à jour, la fonction $("").html("contenu"); serait plus judicieux.

                      Hésite pas à demander, je suis en stage donc j'ai un peu de temps x)

                      Cordialement


                      Envoyé de mon iPhone à l'aide de Forum Joomla.fr
                      Dernière édition par Milkshek à 19/05/2014, 10h06

                      Commentaire


                      • #12
                        Re : appel d'un fonction avec bouton dans un composant joomla

                        Envoyé par Milkshek Voir le message
                        Hésite pas à demander, je suis en stage donc j'ai un peu de temps x)
                        moi aussi je suis en stage sauf que pour moi mon stage est presque fini et je n'ai pas beaucoup avancé dans mon travail à cause de ce problème de requête ajax qui se déclenche via l'appui d'un bouton

                        Envoyé par Milkshek Voir le message
                        Bonjour,
                        Ensuite oui il serait plus judicieux à mon sens de le mettre dans ta vue si il n'y a que ce traitement JS.
                        Le traitement de data serait un parcours d'un tableau en JS ou juste un affichage dans une balise que tu auras au préalable créée :
                        $("#baliseX").append(data); //si retour d'une chaîne de caractères
                        Dans le cas d'une mise à jour, la fonction $("").html("contenu"); serait plus judicieux.
                        alors le traitement veut que la requête se déclenche quand j'appui sur un bouton pour afficher une information issu de la base donc j'ai fait le ajax comme suit:
                        Code:
                        Protected function setDocument()
                            {
                        		$document = JFactory::getDocument();
                        		if($this->loadjquery == 1){
                        			$document->addScript(JURI::root(true).'/components/com_helloworld/js/jquery-1.7.1.min.js');
                        		}
                        		$document->addScriptDeclaration('
                        		function appel()
                        		{
                        		jImc.get(url: "index.php?option=com_helloworld&view=helloworld&task=misejour");
                        }.done(function (data) { 
                        alert("requête lancé, ceci est un message de test");
                        })';
                        	}
                        et la vue est comme suit:
                        Code:
                         
                         <input type="button" value="envoyer" id="renderbutton" onclick="appel()" />
                         la recup:<input type="text" name="titre" value="<?php echo 'h';?>"/>
                        </form>
                        ceci ne marche pas malheuresement!!! ça m'affiche une page blanche cela veu dire qu'il bug tous le template
                        chai pas c'est l'erreur, pouvez m'aidez encore un peu je sens que je suis tout proche de la solution
                        merci

                        Commentaire


                        • #13
                          Re : appel d'un fonction avec bouton dans un composant joomla

                          Je sais pas ce que t'invente mais c'est pas ça la fonction AJAX XD
                          Je t'invite à regarder la doc : http://api.jquery.com/jquery.ajax/

                          En tout cas, t'as bien pensé à inclure la librairie

                          Je pense que ta fonction "appel" tu devrais la faire comme ceci :

                          //JavaScript
                          function appel() {
                          $.ajax({
                          url: "<?php return JURI::root(true ); ?>/url/de/ton/script/a/partir/de/la/racine/de/ton/site.php",
                          data: {},
                          dataType: "html"
                          }).done(function (data) {
                          //Ton script doit renvoyer une chaîne de caractère
                          $("#idDeTaBalise").html(data);
                          });
                          }

                          //Exemple script php : site.php
                          <?php
                          $array[0] = "Hello";
                          $array[1] = "world !";
                          $resultat = "";
                          for(int i = 0; i < 2; i++) {
                          $resultat = $resultat+" "+$array[i];
                          }
                          echo $resultat; //ou "return" je ne sais plus trop
                          ?>

                          Je sais pas si tu fais la différence entre le JavaScript et le PHP mais je t'explique au cas où. En gros, le JavaScript est un language du coté client.
                          Tandis que le PHP est un language du coté serveur. La requête AJAX va te permettre de faire appel à un script donc PHP pour aller chercher les données dans ta base sans avoir à recharger ta page.

                          Franchement, essaie de me dire ce que tu veux vraiment faire et je vais t'aider

                          Commentaire


                          • #14
                            Re : appel d'un fonction avec bouton dans un composant joomla

                            Envoyé par Milkshek Voir le message
                            Je sais pas si tu fais la différence entre le JavaScript et le PHP mais je t'explique au cas où. En gros, le JavaScript est un language du coté client.
                            Tandis que le PHP est un language du coté serveur. La requête AJAX va te permettre de faire appel à un script donc PHP pour aller chercher les données dans ta base sans avoir à recharger ta page.
                            je connais bien javascript et php j'ai tous deux utilisé avant mais pour jquery et ajax je ne fais pas la différence(sachant que tous les deux sont du javascript) en plus je n'ai jamais été obligé de les utiliser

                            Envoyé par Milkshek Voir le message
                            Franchement, essaie de me dire ce que tu veux vraiment faire et je vais t'aider
                            je l'ai déjà dit j'ai un fichier php dans le modèle:
                            Code:
                            	public function getdata()
                            	{
                            	        $db = JFactory::getDbo();
                            			$sql = "
                            			SELECT id 
                            			FROM ".$db->nameQuote('#__improvemycity')."
                            			WHERE ".$db->nameQuote('currentstatus')."=".$db->quote(1).";";
                            			$db->setQuery($sql);
                            			$this->data = $db->loadResultArray();
                            			return $this->data;
                            	}
                            	public function misejour()
                            	{
                            	        $cids=JRequest::getVar( 'cid', array(0), '', 'array' );
                            			$liste='('.$cids[0]; 
                            			for ($i=1; $i < count($cids); $i++) {$liste=$liste.', '.$cids[$i] ;}
                            			$liste=$liste.')';
                            			return $liste;
                            			
                            	}
                            }
                            moi ce qui m'interesse c'est la fonction misejour(), elle n'est encore complète mais une fois que je réussirais à l'appeler je la mettrais au complet pour le moment je me contente de ré-afficher le contenu des checkbox que je coche. cette fonction doit se déclencher à l'appel du click du bouton envoyer et affiche son contenu dans le champs texte juste après pour cela j'ai réalisé un task dans le contrôleur(je ne suis pas sûr de la manière de l'ecrire) que voici:
                            Code:
                            function misejour()
                            	{
                            	$model = $this->getModel('helloworld');
                            	$res = $model->misejour();
                            	$ret['res'] = $res;
                            	echo json_encode($ret);
                            	//parent::display();
                            	return;
                            	}
                            pour pouvoir l'appeler dans l'url, car dans mon script php il y a plusieurs fonctions donc je peux écrire
                            index.php?option=com_helloworld&view=helloworld&ta sk=misejour
                            c'est du développement de composant joomla qui suit le patron de conception MVC

                            j'éspère que j'ai bien expliqué

                            Commentaire


                            • #15
                              Re : appel d'un fonction avec bouton dans un composant joomla

                              Dans ta fonction miseajour, il faut qu'elle retourne une chaîne de caractère si c'est à elle que tu fais appel dans ta requête AJAX


                              Envoyé de mon iPhone à l'aide de Forum Joomla.fr

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X