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

AJAX Discussion :

[AJAX] Afficher du texte de la BDD dans div au click


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 243
    Par défaut [AJAX] Afficher du texte de la BDD dans div au click
    Bonjour, j'affiche sur ma page un dossier et les titres des articles liés au dossier (lien). Je souhaite afficher sur la même page dans une DIV le texte de l'article provenant de ma BDD à chaque fois que je click sur un titre d'article (lien).

    Voilà mon script:

    Javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function afficherArticle(article){
    	document.getElementById('divCharge').innerHTML= article;
    }
    PHP: affichage
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
           foreach($sqlArtLie as $key=>$value){  
    	//On récupère l'article dans la table article
            $data = display($table, $filtre, $p);  //Fonction qui me ramène les données sous forme de tableau
    	foreach($data as $key=>$value){  //Je récupère le titre de l'article et le texte
    	     $titreArt = $value->titre;
    	     $texte = $value->texte;
    	}
    	$article = "<h1>".$titreArt."</h1><div>".$texte."</div>";
    //Jusque là tout va bien, vérification les variables ont bien leur contenu
     ?>
    <a href="#" onclick="javascript:afficherArticle('<?php $article ?>');">
             <div><?php echo $value->titre; ?></div>
     </a>
    <?php  }?>

    //DIV d'affichage du texte
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="divCharge"></div>

    Merci de votre aide.

  2. #2
    Membre très actif
    Avatar de la.lune
    Homme Profil pro
    Directeur Technique
    Inscrit en
    Décembre 2010
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Comores

    Informations professionnelles :
    Activité : Directeur Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 548
    Par défaut
    Déjà tu oublies un echo entre <?php et $article à la ligne 16. Tu dois avoir ceci afficherArticle('<?php echo $article ?>');">

  3. #3
    Membre très actif
    Avatar de la.lune
    Homme Profil pro
    Directeur Technique
    Inscrit en
    Décembre 2010
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Comores

    Informations professionnelles :
    Activité : Directeur Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 548
    Par défaut
    Mais bon je te déconseille cette méthode, déjà c'est un peu moche de mettre tout un article comme paramètre à afficher une fois la méthode est exécuté, en plus si dans ton article tu as des apostrophe alors c'est fini pou toi

    Alors, si tu veux dans toutes les circonstances envoyer tes articles au client, et tu ne veux pas faire de l'ajax, je te propose une solution que je ne dis pas que c'est la meilleur, mais bon c'est un mieux que ce que tu fais. Tu peut mettre des articles dans un champs caché, un input de type hidden, et tu récupère après, avec un id que tu peux créer, comme un nombre que tu va initialiser et incrémenter avec la boucle.
    Tu peux faire comme ça par exemple:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     $article = "<h1>".$titreArt."</h1><div>".$texte."</div>";
     <input id="<?php echo $i ?>" type="hidden" value="<?php echo $article ?>" style="display:none" />
    ?>
    <a href="#" onclick="javascript:afficherArticle(<?php echo $i ?>);">
             <div><?php echo $value->titre; ?></div>
     </a><?php 
    $i++
     }?>
    Et dans la fonction JavaScript tu peux faire comme ça:

    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function afficherArticle(id){
            document.getElementById('divCharge').innerHTML= document.getElementById(id).vlaue;
    }

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 243
    Par défaut
    Je ne suis pas un calé en Ajax raison pour laquelle je passe simple par js.
    Comment faire si je veux utiliser AJAX?

  5. #5
    Membre très actif
    Avatar de la.lune
    Homme Profil pro
    Directeur Technique
    Inscrit en
    Décembre 2010
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Comores

    Informations professionnelles :
    Activité : Directeur Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 548
    Par défaut
    Si tu ne connais pas l'ajax alors il faut chercher à l'apprendre sur le forum, comment ça marche. Il y a pas mal de tuto ici qui expliquent ça. Voir la FAQ Ajax

    Déjà dans ton cas il te faudra un identifiant unique pour chaque article, que tu peux la gérer manuellement ou avec la base de données.

    Ainsi, tu dois avoir un fichier php, qui te renvoie juste le contenu d'un article si tu envoie une requête avec l'identifiant(id_article).
    Alors dans ton fichier php tu n'aurais pas besoin d’insérer tout l'article mais l'identifiant:
    Tu peux juste avoir :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <a href="#" onclick="javascript:afficherArticle(<?php echo $id_article);">
             <div><?php echo $value->titre; ?></div>
     </a>

    Et dans la fonction Javascript pour afficher le contenu vas y apprendre comment ça marche avec ajax.
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function afficherArticle(id_article){
    //CODE D'APPEL DE L'ARTICLE AVEC AJAX
    //AFFICAHE UNE FOIS LA REQUÊTE RÉUSSI
    }

    De la même manière que tu n'est pas obligé de faire de l'ajax , si tu n'a pas une grande quantité d'articles à afficher d'un seul coup tu peux adopter le champ caché ou un contenu même caché dans le navigateur

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 243
    Par défaut
    Ok, je vais faire un tour sur le forum et je reviens. C'est toujours mieux d'apprendre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/03/2009, 23h09
  2. [HTML] Afficher un texte au format HTML dans une textarea
    Par Akutabi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 22
    Dernier message: 12/12/2007, 14h50
  3. [AJAX] Afficher la valeur d'une liste dans une zone de texte
    Par debutantasp dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/11/2007, 17h12
  4. Réponses: 1
    Dernier message: 25/11/2007, 17h12
  5. Réponses: 4
    Dernier message: 02/06/2007, 12h35

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