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] Mon appel de fonction ne marche pas


Sujet :

AJAX

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut [AJAX] Mon appel de fonction ne marche pas
    Bonjour a tous,

    J'ai une fonction qui permet l'upload d'une image en ajax (tout fonctionne) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function uploadFile(ida) {
    var idb=ida;
    var v_copypix = document.getElementById("copypix").checked; if (v_copypix === true){v_copypix = '1';}else{v_copypix= '0';}
    var fd = new FormData();
    fd.append("file", document.getElementById('file').files[0]);
    var xhr = new XMLHttpRequest();
    // xhr.upload.addEventListener("progress", uploadProgress, false);
    xhr.open("POST", "upload.php?bk="+ida+"&copypix="+v_copypix);
    xhr.send(fd);
    }
    cependant je n'arrive pas a afficher l'image nouvelle téléchargée parmi les autres, sur ma page, donc je passe par une autre fonction ajax qui va chercher le contenu de l'album photo et qui les affiche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function aff_list_photo (idb) {fermer();$('#d_photo').show();$('#div_albums').hide();$('#d_l_photo').show(); $.ajax({url: "list_photo.php?nbbk="+idb,ifModified:true,success: function(content){$('#d_photo').html(content); }});}
    Dans mon formulaire je valide l'upload comme ça :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="button" onclick="uploadFile(90); setTimeout('aff_list_photo(90)', 4000);" value="Envoyer" />
    <input type="button" onclick="aff_list_photo(90);" value="test" />

    En clair, la fonction aff_list_photo ne fonctionne pas en cliquant sur ENVOYER mais fonctionne si d'abord je clique sur Envoyer PUIS Test ???

    J'ai besoin de mettre un setTimeout car l'upload peut mettre qq secondes pour se faire selon le poids de la photo, donc je force l'attente de 4 secondes avant d'appeler la fonction aff_list_photo(90) .. mais j'ai l'impression que les deux fonctions sont mises en attentes.. bref je tourne en rond.

    Merci de votre aide.

    Bonne journée

  2. #2
    Membre régulier
    Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 78
    Points
    78
    Par défaut
    Bonjour,

    c'est normal le setTimeout ne se déclenche pas immédiatement. essaye ceci :
    ajouter ce bout de code dans uploadFile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4) {
            aff_list_photo(90);
        }
    }
    ce bout de code va appeler la fonction aff_list_photo après le retour de la réponse (pas besoin de timeout l'ajax est ASYNCHRONE).


    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" onclick="uploadFile(90);" value="Envoyer" />

Discussions similaires

  1. [XL-2003] fonction ne marche pas sur mon pc
    Par zangaloni dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/08/2011, 15h24
  2. Réponses: 22
    Dernier message: 17/11/2009, 18h16
  3. pourquoi ma fonction ne marche pas?
    Par isma92 dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 30/01/2007, 14h22
  4. [AJAX] et appel de fonction
    Par biozaxx dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 29/11/2006, 10h53
  5. [AJAX] [php] appel de fonction php dans evenement
    Par nicerico dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 20/11/2006, 12h01

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