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

PHP & Base de données Discussion :

Mise à jour de la base aprés insertion et visualisation par des requêtes Ajax [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut Mise à jour de la base aprés insertion et visualisation par des requêtes Ajax
    Bonjour, je fais une insertion dans une base MySqsl suite à l'intégration d'un fichier dans l'interface, mais si je lance aussitôt l'affichage de la table, sans recharger la page, l'élément n'est pas intégré, alors que si je temporise avant d'obtenir la nouvelle liste de fihcier via le mode debug du navigateur, l'intégration fonctionne. (comme si l'intégration n'avait pas eu le temps de se finir quand je déclenche le select suivant)

    Plus en détail, j'intégre un fichier image, je lance depuis JavaScript une requêe Ajax qui lance cette requete Sql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "INSERT INTO IMAGES_POSSIBLES_MAIL(id,ID_B2B,NOM,NOMDEFICHIER) VALUES (null,'" . $ID_B2B . "','" .$NOM . "','" . $NOM . "')";
    Ensuite de retour dans le code JavaScript je lance directement via l'Ajax la requête d'affichage des images intégrées. Je lance donc cette requete Sql.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ID,NOM,NOMDEFICHIER from IMAGES_POSSIBLES_MAIL  where ID_B2B =" . $LeID_B2B .""
    Cependant je n'obtiens pas la dernière image ajoutée, je ne l'aurais que si je réintegre une nouvelle image où que je raffraichisse l'écran.
    Je pense qu'il est peut être possible d'utiliser lastInsertId() pour récupérer le dernier identifiant mais je pense qu'il y a peut être quelque chose de plus académique à faire, du coup je pose la question. Sinon il faudrait que je relance l'affichage de la page dans JavaScirpt mais ce n'est pas trés Web 2.0

    Merci d'avance de vos idées.

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    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 325
    Billets dans le blog
    17
    Par défaut
    je fais une insertion dans une base MySqsl suite à l'intégration d'un fichier dans l'interface, mais si je lance aussitôt l'affichage de la table, sans recharger la page, l'élément n'est pas intégré
    Comment t'y prends-tu pour cela ? Il y a sûrement un mauvais cadencement.

    En JS il faut faire quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fetch(<envoi du fichier>).then(response => {
        <si ok rafraichissement de l'interface>
    });
    => Tu rafraichis après un retour positif du serveur

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut
    Voici comment je fais l'appel Ajax, ce code charge le fichier et appel le Php avec le Sql d'insertion:

    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
    function ajax_file_upload(file_obj) {
      if(file_obj != undefined) {
        var form_data = new FormData();
        InfosFichierType=*file_obj.type;
        InfosFichierNom=*file_obj.name;
        form_data.append('file', file_obj);
        $.ajax({
          type: 'POST',
          url: 'PHP_Pour_Ajax/IntegrationImage2.php',
          contentType: false,
          processData: false,
          data: form_data,
          success:function() {
          $('#selectfile').val('');
          }
        });
      }
    AffichageDebut();
    }
    et ensuite j'appelle AffichageDebut(): qui appel le Php avec le select qui met à jour l'affichage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function AffichageDebut()
    {
    $.ajax({
        url: "PHP_Pour_Ajax/ListeDesFichiersImagesCharges.php",
        type: "POST",
        success: function(data){
          $("#TableauListeImagesIntegrees").html(data);
        },
        error: function(){},
        }
        );
     
    }
    Qu'est ce qui empéche que l'affichage prenne pas en compte l'insertion du nouveau fichier ?

  4. #4
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par défaut
    Bonjour,

    AffichageDebut(); doit être appelé dans le success :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
          success:function() {
             $('#selectfile').val('');
             AffichageDebut();
          }

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut
    Merci bien. Bonne fin de journée.

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

Discussions similaires

  1. [AC-2010] Mise a jour d'une base après déploiement
    Par pprieu dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 20/03/2012, 09h18
  2. Mise à jour d'une base de données apres installation
    Par reitsab dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 01/12/2009, 11h07
  3. Réponses: 6
    Dernier message: 15/05/2006, 17h04
  4. Mise à jour de table impossible après requête avec jointure
    Par sto dans le forum Bases de données
    Réponses: 5
    Dernier message: 17/03/2004, 13h24

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