recherche code

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

  • laurent00
    a répondu
    bon j'ai finalement réussi
    Code PHP:
    $results $db->loadAssocList("mot");
    $mot $_POST["mot"];
     echo 
    $results[$mot]["ts_g"]; 
    il me restera à voir pour l'ajax, mais je ne vais pas le faire de suite, donc je mets ce post en résolvé et vous remercie tous
    LJ

    Laisser un commentaire:


  • laurent00
    a répondu
    merci bien
    j'ai réussi à récupérer mon $_POST["mot"]
    il ne me reste plus qu'a interroger mon $results = $db->loadAssocList(); qui ramène les données de l'enregistrement $_POST["mot"]
    ou dois-je refaire une nouvelle interrigation de ma bdd avec un Where ?
    et coment sortir les données de $results ?
    LJ

    Code PHP:
    $db Factory::getDbo();
    $query $db->getQuery(true);
    $query->select($db->quoteName(array('id''mot','ts_m''ts_g''ts_pl''ts_or''ts_com''tg_m','tg_g','tg_pl','tg_or','tg_com')))
    ->
    from($db->quoteName('#__tasawaq'));

    $db->setQuery($query);
    $results $db->loadAssocList(); 

    Laisser un commentaire:


  • roland_d_alsace
    a répondu
    Hello.

    Il faudrait t'inspirer d'une vue de Joomla.

    Déjà ton formulaire html ne fait pas d'action, il ne renvoie de pas de requête au serveur.

    Si tu regardes dans les templates de vues de Joomla tu trouveras de truc comme cela (exemple admin de com_contact) :
    Code:
    <form action="<?php echo JRoute::_('index.php?option=com_contact'); ?>" method="post" name="adminForm" id="adminForm">
    Ici l'url ne contient pas de notion de vue ou de contrôleur/methode à exécuter, car la variable task est passé en post, voir plus bas dans le formulaire (même fichier) :
    Code:
    <input type="hidden" name="task" value="" />
    C'est juste pour te dire qu'il te faut une url d'envoie du formulaire pour sevoir ce que tu veux faire en cliquant sur le bouton de validation.

    Ensuite dans le contrôleur de la même vue tu trouveras comment récupérer le contenu des variables (get ou post).
    Là on récupère le tableau de id sélectionnées pour un traitement de type batch.
    Code PHP:
    $ids    $this->input->get('cid', array(), 'array'); 
    $this->input étant effectivement une instance de la classe Jinput initialisée dans le constructeur de a classe héritée.

    Sinon tu récupères les variables de formulaire ainsi :
    Code PHP:
    $p_dir JFactory::getApplication()->input->getString('install_directory'); 
    (à noter que getString est une notation de get avec un filtre de type string -3ème paramètre de la méthode get, le 2ème étant la valeur implicite-)

    ou bien sûr :

    ici un récupère la variable 'task', elle peut être passée en post (cas des boutons de formulaire dans l'admin par exemple ou la valeur de task (définie en hidden voir exemple ci*dessus) et renseignée par javascript lors du club sur un bouton d'action (bandeau du haut en admin avec les actions possibles dépendant de l'ACL), mais aussi en get dans l'url. jinput cherchera dans les 2 types.
    Code PHP:
    $input  JFactory::getApplication()->input;
    ...
    $task $input->get('task'); 
    Si tu utilises la classe JForm (conseillée voir ici...) elle seront dans un tableau dépendant du formulaire.
    Tu peux les récupérer ainsi dans le tableau $formData :
    Code PHP:
    $app JFactory::getApplication();
    $formData $app->input->get('jform', array(), 'array');
    ....
    $CodeClub$formData['codeclub']; 
    Comme dit n'hésite pas à chercher dans le code du CMS pour t'inspirer quand tu commences à coder sous Joomla.
    Dernière édition par roland_d_alsace à 23/02/2021, 10h21

    Laisser un commentaire:


  • laurent00
    a répondu
    j'ai aussi testé la méthode GET

    mis une action dans mon form du style
    Code PHP:
    $uri = JURI::getInstance();
    $url = $uri->toString();

    action="<?php echo JRoute::_($url); ?>"
    voir un index.php

    et même testé Jinput

    Code PHP:
    JFactory::getApplication()->inputet ensuite tu le récupères avec $variable $jinput->get('mot''default_value''filter');. 
    mais sans résultat !?

    j'ai l'impression que mon module ne traite pas la méthode POST, mais aussi que le Input ne recharge pas la page !

    Lj
    Dernière édition par laurent00 à 22/02/2021, 20h24

    Laisser un commentaire:


  • laurent00
    a répondu
    bonsoir
    sincèrement je ne m'en sort pas avec ajax, j'avoue ne pas comprendre la chose ...
    donc en attente je souhaite passer par un input quitte à recharger la page
    mais là aussi je n'arrive pas à récupérer le choix de mon select
    visible ici

    Code PHP:
    <?php defined('_JEXEC') or die;

    //affiche les erreurs
    ini_set('display_errors'1);
    ini_set('display_startup_errors'1);
    error_reporting(E_ALL);

    JHtml::_('formbehavior.chosen''select');
    JHtml::_('formbehavior2.select2''.test1');

    $document =& JFactory::getDocument();
    $document->addCustomTag'<link rel="stylesheet" type="text/css" href="'JURI::base() . 'modules/mod_tasawaq/tmpl/tasawaq.css" title="default" />' );


    use 
    Joomla\CMS\Factory;
    $app Factory::getApplication(); // equivalent of $app = JFactory::getApplication();
    $input $app->input;


    $db Factory::getDbo();
    $query $db->getQuery(true);
    $query->select($db->quoteName(array('id''mot''tg_pl')))
    ->
    from($db->quoteName('#__tasawaq'));

    $db->setQuery($query);
    $results $db->loadAssocList();
    ?>

    <script>
    function JouerSon() {
    var sound = document.getElementById("beep");
    sound.play();
    }
    </script>

    <form method="POST" action="">
    <select class="test1" style="width: 220px;" name="mot">
    <option selected="selected" value=""><h1> - chercher un mot - </h1></option>
    <?php foreach ($results as $row) { ?>
    <option value="<?php echo $row["mot"]; ?>"
    <?php echo isset($_POST["mot"])&&$_POST["mot"]==$row["mot"]?" selected":"";?>>
    <?php echo $row["mot"];?>
    </option>
    <?php ?>
    </select>
    <input type="submit" value="Traduire" name ="choix"/>

    <?php //debug code
    echo 'Var POST : '.count($_POST).'<pre>';
    print_r($_POST);
    echo 
    '</pre>'?>


    <?php
    $p1 
    $input->get('mot''non trouvé''STRING');
    echo 
    $p1;
    ?>
    </form>

    Laisser un commentaire:


  • laurent00
    a répondu
    meerci Cavo de ta persévérance avec moi
    mais là je sèche j'ai testé des choses mais je comprends pas vraiment ce que je fais...
    est-il possible de bien vérifier qu'au moins ma base de travail est correcte
    http://ressources.ingall-niger.org/temp/mod_tasawaq.zip
    Merci LJ

    Laisser un commentaire:


  • cavo789
    a répondu
    Bonjour

    Lis ton code ... Tu ne fais jamais que de déclarer une liste déroulante et c'est tout. Il te faut un formulaire avec une action et une méthode. L'action sera d'appeler com_ajax (il existe des docs, voir https://docs.joomla.org/Using_Joomla_Ajax_Interface/fr).

    Autre lien (cherche "Joomla module com_ajax") https://www.itoctopus.com/how-to-use...onent-com_ajax

    Bonne prog

    Laisser un commentaire:


  • laurent00
    a répondu
    Daneel Cavo, merci de me cadrer
    donc j'ai fais un module de base avec le helper et tout et tout ..
    j'ai intégré le select2 qui va chercher la liste d'un attribut dnas ma BDD et l'affiche dans le select ci-dessous
    sans doute que la boucle foreach est à transformer en requête ajax si j'ai bien compris ...
    mais la je sèche


    Code PHP:
    <select class="test1" style="width: 220px;" id="town" name="town">
    <option selected="selected" value="0"> - Please select - </option>
    <?php foreach ($results as $row) { ?>
    <option value=' <?php echo $row['mot']; ?> '>
    <?php echo $row['mot'];?>
    <?php 
    ?>
    </select>
    Dernière édition par laurent00 à 18/02/2021, 23h14

    Laisser un commentaire:


  • cavo789
    a répondu
    Bonsoir

    Cela sera un peu rude mais que fais ton code ? Au mieux, tu affiches une liste déroulante avec quelques valeurs. C'est le strict minimum pour ton projet : afficher la liste.

    Mais ensuite ?

    Logiquement, une extension Joomla (que ce soit un module ou un composant) ne doit pas s'embêter de déclarer le tag html ou body; tout ça, c'est pris en charge par ton template.

    Intéresse-toi aux liens fournis par Yann à savoir soit créer un vrai composant (model-vue-controlleur) soit un module (mais auquel cas il faudra t'intéresser à com_ajax pour les interactions avec la base de données après sélection d'une valeur).

    La route que tu es occupé à prendre est celle de créer un script en dehors de toutes normes et est externe à Joomla (si ce n'est de faire une requête base de données). C'est loin d'être la plus propre et le plus pérenne.

    Bonne soirée.

    Laisser un commentaire:


  • laurent00
    a répondu

    merci Daneel, mais je crois que je vais attendre epour l'ajax de réussir la chose sans, tant pis si la page doit être recharger, au moins cela me permet de comprendre car avec ajax, je suis perdu ...
    voici mon bout de code, d'abord je récupère la liste de mot dnas ma table
    puis je l'affiche dans une datalist, mais ensuite je n'arrive pas à récupérrer la valeur sélectionnée pour pourvoir afficher l'enregistrement qui correspond ...

    Code HTML:
    <?php defined('_JEXEC') or die('Restricted Access');
    use Joomla\CMS\Factory;
    $db = Factory::getDbo();
    $query = $db->getQuery(true);
    $query->select($db->quoteName(array('id', 'mot', 'tg_pl')))
    ->from($db->quoteName('#__tasawaq'));
    $db->setQuery($query);
    $results = $db->loadAssocList();
    
    /**foreach ($results as $row) {
    echo "<p>" . $row['mot'] . ", " . $row['tg_pl'] . "</p>";
    }*/
    
    ?>
    <html>
    <body>
    
    <form action="" method="POST">
    <datalist name="mot" id="list">
    <?php foreach ($results as $row) { ?>
    <option value=' <?php echo $row['mot']; ?> '>
    <?php echo $row['mot'];?>
    <?php } ?>
    </datalist>
    <input autocomplete="on" list="list" type="text" />
    </form>
    
    
    </body>
    </html>
    Dernière édition par laurent00 à 18/02/2021, 21h42

    Laisser un commentaire:


  • laurent00
    a répondu
    Envoyé par daneel Voir le message
    Merci je viens juste de voirt ton message avant celui poster tout à l'heure
    merci je regarde cela ...

    LJ

    Laisser un commentaire:


  • laurent00
    a répondu
    bonsoir, je progresse ...
    ce code me permets de récupérer la liste des mots dans ma BDD et de la mettre dans une liste déroulante
    maintenant il faut que j'arrive à prendre le résultat du select pour afficher l'enregistrement correspondant au mot ...
    LJ

    Code PHP:
    <?php
    defined
    ('_JEXEC') or die('Restricted Access');

    use 
    Joomla\CMS\Factory;

    $db Factory::getDbo();

    $query $db->getQuery(true);

    $query->select($db->quoteName(array('mot''tg_pl')))
    ->
    from($db->quoteName('#__tasawaq'));

    $db->setQuery($query);

    $results $db->loadAssocList();

    ?>
    <html>
    <body>
    <select name='categorie'>
    <?php foreach ($results as $row) { ?>
    <option value=' <?php echo $row[mot]; ?> '>
    <?php echo $row['mot']; ?>
    <?php 
    ?>
    </select>


    </body>
    </html>

    Laisser un commentaire:


  • daneel
    a répondu
    Bonjour,

    Je n'ai pas eu le temps de lire la discussion mais il me semble que tu recherche comment créer un formulaire de type select2
    https://select2.org/

    A la différence d'un menu de selection standard, l'affichage inclus une zone de saisie pour filtrer et afficher les choix.

    exemple sous joomla 3
    https://www.joomy.net/en/using-selec...e-codes-syntax

    Ensuite la requête serait affiché en ajax afin de rester dans la page.
    https://docs.joomla.org/Using_Joomla_Ajax_Interface/fr

    Le tout étant de savoir si tu veux utiliser un shortcode pour inserer le formulaire dans un article donc créer un plugin ou un module pour afficher le form et le résultat dans une position du template. Ce qui serait plus simple si tu as déjà défini ta source, c'est à dire la table contenant la traduction et l'url vers le fichier mp3.

    Alternativement si tu développe ton propre composant pour gérer ces traductions, le menu serait intégré dans une vue front et tu aurais une extension
    que tu aura développé de a à z.... Tu peux jeter un coup d'oeil à https://www.joomlacomponentbuilder.com/

    Perso, j'aurais créé le composant avec jcb (le lien ci-dessus) puis j'aurai défini une vue sous la forme d'un "glossaire" afin d'avoir la liste de toutes les traductions et de pouvoir les référencer par ordre alphabétique. J'aurai intégré une vue de recherche avec le menu de selection non pas en jquery avec select2 mais avec https://tom-select.js.org/ afin de supprimer jquery et de pouvoir assurer la compatibilité avec joomla 4. Mais cela demande du temps.

    Au final, si tu fais un simple module, ce sera certainement plus simple à réaliser, il te suffira de voir comment implanter un menu select 2 et de faire une requete en ajax. Toutes les solutions sont dans les liens données ci-dessus.


    Laisser un commentaire:


  • laurent00
    a répondu
    j'ai trouvé aussi ce bout de code
    est-ce que cela pourrait faire l'affaire si je trouve comment faire un array de mon attribut pour ce script ...
    Code PHP:
    <form id="myForm">
    <
    select id="selectNumber">
    <
    option>Choose a number</option>
    <
    script>
    var 
    myArray = new Array("1""2""3""4""5");
    for(
    i=0i<myArray.lengthi++) {
    document.write('<option value="' myArray[i] +'">' myArray[i] + '</option>');
    }
    </
    script>
    </
    select>
    </
    form
    LJ
    Dernière édition par laurent00 à 18/02/2021, 13h52

    Laisser un commentaire:


  • laurent00
    a répondu
    une aide svp
    une piste,un tuto ..

    LJ

    Laisser un commentaire:

Annonce

Réduire
1 sur 2 < >

C'est [Réglé] et on n'en parle plus ?

A quoi ça sert ?
La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
Comment ajouter la mention [Réglé] à votre discussion ?
1 - Aller sur votre discussion et éditer votre premier message :


2 - Cliquer sur la liste déroulante Préfixe.

3 - Choisir le préfixe [Réglé].


4 - Et voilà… votre discussion est désormais identifiée comme réglée.

2 sur 2 < >

Assistance au forum - Outil de publication d'infos de votre site

Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

UTILISER À VOS PROPRES RISQUES :
L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

Problèmes connus :
FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

Installation :

1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

Archive zip : https://github.com/AFUJ/FPA/zipball/master

2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
et remplacer www. votresite .com par votre nom de domaine


Exemples:
Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
Télécharger le script fpa-fr.php dans: /public_html/
Pour executer le script: http://www..com/fpa-fr.php

Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
Télécharger le script fpa-fr.php dans: /public_html/cms/
Pour executer le script: http://www..com/cms/fpa-fr.php

En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
Voir plus
Voir moins

Partenaire de l'association

Réduire

Hébergeur Web PlanetHoster
Travaille ...
X