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] Rafraichir un DIV apres insertion dans BDD


Sujet :

AJAX

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 133
    Points : 61
    Points
    61
    Par défaut [AJAX] Rafraichir un DIV apres insertion dans BDD
    Bonjour,
    J'ai récupéré un script qui fonctionne très bien.
    Le voici:

    Page principale composée de 2 DIV
    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
    21
    22
    23
    24
    25
    26
    27
    <div id='mini_tableau'>
    <ul>
    <?php
    	$query = "SELECT id_club, club, championnat FROM ".$_PRE."clubs WHERE championnat = '".$_GET['championnat']."' ORDER BY championnat, club";
    	$result = mysql_query($query) or die('Erreur SQL !'.$sql.''.mysql_error());
    	while($row = mysql_fetch_array($result))
       		{
    ?>
          <div id="insert_response"></div>
     
          <li style="list-style:none;"><input type="checkbox" name="checkbox[]" value="<?php echo $row['club'];?>" <?php if($club=='1'){ echo "checked=\"true\""; }?> onclick="javascript:return insert('<?php echo $row['club'];?>','<?php echo $row['id_club'];?>','<?php echo $row['championnat'];?>','<?php echo $_PRE;?>');"><?php echo $row['club'];?></li>
    <?php } ?>
    </ul>
    </div>
    <div id='ligue'>
    <p class='rouge'>Clubs du championnat de Ligue <?php echo $_GET['championnat']; ?></p>
    <?php
            require_once('config/config.inc.php');
            $query = "SELECT club FROM ".$_PRE."".$_GET['championnat']."classement ORDER BY club";
            $result = mysql_query($query) or die('Erreur SQL !'.$sql.''.mysql_error());
            while($row = mysql_fetch_array($result))
       		{
       		echo $row['club'];
       		echo "<br>";
       		}
    ?>
    </div>
    Le code AJAX

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    function createObject() {
    var request_type;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
    request_type = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
    request_type = new XMLHttpRequest();
    }
    return request_type;
    }
     
    var http = createObject();
     
     
    /* -------------------------- */
    /* INSERT */
    /* -------------------------- */
    /* Required: var nocache is a random number to add to request. This value solve an Internet Explorer cache issue */
    var nocache = 0;
    function insert(club,id_club,championnat,prefixe) {
    document.getElementById('insert_response').innerHTML = "Un instant..."
    nocache = Math.random();
    // Pass the login variables like URL variable
    http.open('get', 'ajout_clubs.php?club='+club+'&id_club='+id_club+'&championnat='+championnat+'&prefixe='+prefixe+'&nocache = '+nocache);
     
    http.onreadystatechange = insertReply;
    http.send(null);
    }
    function insertReply() {
    if(http.readyState == 4){
    var response = http.responseText;
    // else if login is ok show a message: " added+ site URL".
    document.getElementById('insert_response').innerHTML = ' added:'+response;
     
    }
    }
    et la partie traitement des données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    header('Content-Type: text/html; charset=ISO-8859-15');
    if(isset($_GET['club']))
    {
    $_PRE=$_GET['prefixe'];
    require_once('config/config.inc.php');
    $query = "INSERT INTO `".$_PRE."".$_GET['championnat']."classement` (`id_club`, `club`, `points`, `joues`, `gagnes`, `v_dom`, `v_ext`, `d_dom`, `d_ext`, `perdus`, `sets_plus`, `sets_moins`, `points_plus`, `points_moins`) VALUES ('".$_GET['id_club']."', '".$_GET['club']."', '', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0')";
    		$result = mysql_query($query) or die('Erreur SQL !'.$sql.''.mysql_error());
    }
    //echo $query;
    ?>
    Le principe est donc de cliquer sur un élément de la liste de gauche pour l'insérer dans la base de données.
    Ce que je souhaite, c'est réafficher le DIV de droite (nommé ligue) afin de voir la liste de la BDD réactualisée.
    Quelqu'un a une idée svp ?

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    il te suffit de créer une seconde requête Ajax qui récupèrera la nouvelle liste, non ?

    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 133
    Points : 61
    Points
    61
    Par défaut
    Bonjour,

    C'est justement là que je coince. Je ne sais pas trop quoi mettre dans cette requête...
    Tu n'as pas un petit exemple ?

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Equinoxe5 Voir le message
    C'est justement là que je coince. Je ne sais pas trop quoi mettre dans cette requête...
    Tu n'as pas un petit exemple ?
    Ben ... je ne vois pas de meilleur exemple que la requête Ajax que tu as déjà
    C'est pas toi qui l'a écrite/adaptée ?

    A+

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 133
    Points : 61
    Points
    61
    Par défaut
    Je ne l'ai pas écrite. Je l'ai adaptée oui.
    Mais quand je clique sur un item de gauche, ça ne me rafraichit pas le div de droite.
    En fait, il faut que je rappelle ma requête PHP mais je ne sais pas comment faire.

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(http.readyState == 4){
    var response = http.responseText;
    document.getElementById('insert_response').innerHTML = ' added:'+response;
     // ici tu lance une fonction AJAX qui va mettre à jour la liste
    }
    onclick="javascript:return insert('<?php echo $row['club'];?>','<?php echo $row['id_club'];?>','<?php echo $row['championnat'];?>','<?php echo $_PRE;?>');
    onclick attend déjà une instruction ou fonction javascript, donc vire le motif "javascript:"

Discussions similaires

  1. [AJAX] Activer un DIV après choix dans liste
    Par malabarbe dans le forum AJAX
    Réponses: 6
    Dernier message: 28/10/2009, 19h23
  2. Rechargement après insertion dans bdd
    Par arthuro45 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/08/2009, 19h44
  3. [AJAX] Rafraichir un div après validation
    Par HeadQuaker dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 11/04/2008, 14h10
  4. [AJAX] Rafraichissement après insertion dans la base
    Par xave dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 15/05/2007, 10h56
  5. [CKEditor] Probleme pour afficher le code html apres insertion dans bdd
    Par Pepito2030 dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 28/12/2006, 21h52

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