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

jQuery Discussion :

Refresh d'une div en ajax sans .load ni setTimeOut


Sujet :

jQuery

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Refresh d'une div en ajax sans .load ni setTimeOut
    Bonjour,

    Je souhaiterais placer à la fin d'une requête ajax le rechargement d'une div ciblé de son id.
    Je trouve uniquement comme réponses a mes recherches .load() et setTimeOut, le premier s'utilise apparemment pour les frames, le second pour une rechargement périodique, n'y as t il pas une expression qui permettent simplement de recharger une div précise ponctuellement?

    Merci d'avance..

    Adrien


    ma requête au cas ou..: :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    $(function() {
    	$("#form").submit(function(){
    		$("#loader").show();
    		titre = $(this).find("input[name=titre]").val();
    		texte = $(this).find("textarea[name=texte]").val();
    		label = $(this).find("select[name=label]").val();
    		$.post("post.php",{titre: titre, texte: texte, label: label}, function(data) {
    			$("#loader").hide();
    			if(data!="ok") {
    				$(".faux").empty().append(data);
    			}
    			else{
    				ICI LE RECHARGEMENT DE MA DIV..
    				}
    			}
    		});
    		return false;
    		});
    });

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    suis-je obligé d'utiliser des frames? n'y a t il pas une autre solution

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    Je souhaiterais placer à la fin d'une requête ajax le rechargement d'une div ciblé de son id.
    donc si je comprends bien,
    - tu fais ta requête...
    - en retour si tu récupères "ok" tu veux mettre à jour la DIV

    la mettre à jour avec quoi, refaire un requête Ajax ?
    Si c'est pour la "recharger", je présume donc que son contenu à été modifié avant requête, dans ce cas sur le load de la page tu n'as qu'a faire une copy, un clone, de celle ci, il te sera facile de la "recharger"...

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Je trouve uniquement comme réponses a mes recherches .load() [...] s'utilise apparemment pour les frames


    Pas vraiment non...
    load() est soit un événement (mais pas utile dans ton cas) soit un raccourci AJAX pour remplacer le contenu d'un élément par la réponse de la requête, rien à voir avec les frames
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    En effet, j'ai un formulaire qui me permet d'envoyer du texte sur une base de donnée.

    A coté de celui ci ce trouve une div affichant le contenu de la base.
    Après le post du formulaire, données envoyées sur la base, j'aurais souhaité que le contenu de la base se mette a jour dans la div en question.

    - je ne souhaite pas recharger toute la page car, si j'ai un agis sur a un autre endroit de la page en ajax, tout sera perdu au rechargement.
    - l'autre solution était d'utiliser .append() qui me permet d'afficher les données envoyées par le formulaire en les récupérants après le post mais pas d'afficher les données une fois mise sur la base. ( je sais pas si je suis clair..?)
    Cette solution peut être pratique pour un chat mais j'aimerais avoir la possibilité de pouvoir supprimer n'importe quelles entrée de la base par son id.
    Si une entrée vient d'être ajoutées et affichées par .append() elle n'a pas encore d'id car ce qui est affiché ne sont que les informations qui avait été récupérées à la sortie du formulaire......

    en gros.... en écrivant je me dis qu'il faudrait peut etre uniquement réexecuter la requette php $q ( voir code après ) pour recharger la requete Mysql... non?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <div id="base">
    <?php
    include"connect.php";
    $sql = 'SELECT * FROM base WHERE label= \''.$lab.'\' ORDER BY id DESC';
    $q = mysql_query($sql);
    echo '<ul>';
            while($donnees = mysql_fetch_array($q)) 
                    {
                    
                    echo '<li>';
                echo $donnees['titre'].' : '. $donnees['texte'].' ';
                echo '<input type="button" name="delete" id="'.$donnees['id'].'" value="Supprimer" /> ';
                    echo '</li>';
                    }
    echo '</ul>';
    ?>
    </div>

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    $(selector).load("monFichier.html #elemID"); remplacera le contenu de selector par celui de l'élément du DOM ayant l'ID "elemID". Attention, il faut un caractère d'espacement entre l'URL et l'ID.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par danielhagnoul Voir le message
    Bonsoir

    $(selector).load("monFichier.html #elemID"); remplacera le contenu de selector par celui de l'élément du DOM ayant l'ID "elemID". Attention, il faut un caractère d'espacement entre l'URL et l'ID.

    Salut danielhagnoul en fait je n'avais pas mis mon code en détails, désolé je l'ai édité, je ne charge a aucun moment de page externe, l'autre opération que je ne veux pas perdre et qui est la raison pour laquelle je ne veut pas recharger toute la page est que j'affiche les éléments de ma tab selon leur label:

    WHERE label= \''.$lab.'\'

    ( avec un formulaire qui me permet de choisir la catégorie que je veux afficher )

Discussions similaires

  1. [AJAX] Raffraichissement d'une div avec ajax
    Par crazymonkey dans le forum AJAX
    Réponses: 16
    Dernier message: 17/06/2009, 15h41
  2. actualiser une Div par ajax lors d'un changement coté serveur
    Par dajij dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/08/2008, 18h17
  3. Ajax refresh d'une div
    Par lelapinrusse dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 29/03/2008, 22h15
  4. [AJAX] refresh d'une div
    Par lelapinrusse dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 28/03/2008, 14h47
  5. rafraichir une div en ajax
    Par devmassi dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 22/02/2008, 16h10

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