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

Langage PHP Discussion :

coordonnées d'un clic dans une grille


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2024
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Janvier 2024
    Messages : 95
    Par défaut coordonnées d'un clic dans une grille
    Bonjour
    Sur ma page d'accueil j'ai un alphabet disposé en grille 6x4. Chaque case ouvre un php : index_A.php, index_B.php etc qui lance une requête qui va chercher dans une bdd les mots commençant par la lettre correspondante et les affiche par ordre alphabétique.
    J'ai donc écrit 24 fois le même "href=index_?.php" et le même php en changeant juste la lettre... C'est évidemment très crétin !
    je voudrais donc écrire une fonction php à laquelle serait passé en argument la case de la grille qui a été cliquée; ensuite la fonction se débrouille.

    Donc deux petits problèmes : peut-on passer un argument à une fonction à l'aide d'un clic ? (ce qui évitera les 24 "index_?.php") ?
    Puis, carrément, peut-on passer l'endroit du clic à une fonction php ? (ce qui évite les 24 "href=...")

    Est-ce qu'on peut faire quelque chose dans ce genre et comment ?
    Merci

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 329
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 329
    Billets dans le blog
    17
    Par défaut
    Chaque case ouvre un php : index_A.php, index_B.php etc qui lance une requête qui va chercher dans une bdd les mots commençant par la lettre correspondante et les affiche par ordre alphabétique.
    Il ne faut surtout pas faire cela !

    Il faut faire des liens :

    index.php?first-letter=A
    index.php?first-letter=B
    ...

    Ensuite dans index.php, tu récupères le choix avec $_GET['first-letter'].

    Pour générer tes liens :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div id="start-letters">
        <?php foreach (range('A', 'Z') as $first_letter): ?>
            <a class="start-letter" href="index.php?first-letter=<?= $first_letter ?>"><?= $first_letter ?></a>
         <?php endforeach ?>
    </div>

    Et en CSS pour une grille 6x4+2 :

    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <style>
    #start-letters {
        display: grid;
        grid-template-columns: repeat(6, 60px);
        gap: 5px;
    }
    .start-letter {
        display: block;
        border: 1px solid blue;
        height: 60px;
        place-content: center;
        text-align: center;
    }
    </style>

    Cela va donner :

    Nom : GrilleLettres.png
Affichages : 15
Taille : 13,7 Ko
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2024
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Janvier 2024
    Messages : 95
    Par défaut
    Evidemment qu'il ne faut surtout pas faire ça; nous sommes bien d'accord ! C'est une horreur !
    D'où ma question.
    En fait à l'instant présent (version gamma ou delta) la case "A" ouvre un fichier html dans lequel il y a une liste d'une dizaine de <li>que j'ai remplie à la main... mais comme je commence à tenter des choses en sql je me suis dit qu'il y avait p'tet un truc à faire de ce coté.

    je vais voir ça. Entre le "match / against as score" de l'autre post et celui-là je vais pouvoir m'occuper dès que j'aurais un moment ...

    Merci pour tout; j'espère que mes questions t'amusent !! LOL

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 329
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 329
    Billets dans le blog
    17
    Par défaut
    Pour sélectionner des éléments selon le 1er caractère d'une colonne nul besoin de MATCH/AGAINST et des index FULLTEXT.

    Un simple LIKE ou un SUBSTRING suffisent.

    Dans index.php :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $first_letter = $pdo->quote($_GET['first-letter']);
     
    $sql = <<<SQL
        SELECT ALL tes_colonnes
        FROM ta_table
        WHERE SUBSTRING(ta_colonne FROM 1 FOR 1) = {$first_letter}
        SQL;
     
    $data = $pdo->query($sql)->fetchAll();
    $row_count = count($data);
     
    echo "Résultat : {$row_count} ligne(s)";
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

Discussions similaires

  1. Clic dans une grille
    Par looping dans le forum Langage
    Réponses: 9
    Dernier message: 15/10/2008, 08h14
  2. Réponses: 9
    Dernier message: 19/12/2005, 14h24
  3. Fuison de cellule dans une grille
    Par AlexB59 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 21/11/2005, 16h25
  4. Réponses: 10
    Dernier message: 19/09/2005, 22h24
  5. Ouvrir un fichier sur un double-clic dans une TListBox
    Par SegmentationFault dans le forum Composants VCL
    Réponses: 4
    Dernier message: 09/08/2004, 17h22

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