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 :

Jquery : boite de dialogue


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 36
    Par défaut Jquery : boite de dialogue
    (sujet venant d'être déplacé)
    Bonjour,
    Je cherche à renommer des fichiers avec Ajax mais avant tout j'ai besoin de récupérer la valeur d'une variable issue d'une fenêtre jquery.

    Lors du clic sur un fichier deux fonctions sont lancées : 1)on ouvre la fenêtre jquery qui possède un champ texte 2) on lance la fonction rename

    Le problème réside dans le faite que la fonction rename doit attendre d'avoir récupéré la valeur du champs texte de la fenêtre avant d'être lancée.

    1)j'ouvre la fenêtre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ('#modal4').dialog('open');
    2) je lance la fonction rename
    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
    function rename(idserveur,pname){
    	var xhr = getXMLHttpRequest();
     
    	xhr.onreadystatechange = function() {
    		if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
    			 var tmp = xhr.responseText;
    			document.getElementById('operation').innerHTML = tmp;
    		}
    		else if (xhr.readyState < 4) {
    			document.getElementById('operation').innerHTML = '<img src="../img/loading.gif"></img>';
    		}
    	};
     
    		var idserveur = encodeURIComponent(idserveur);
    		var pname = encodeURIComponent(pname);
    		var nname ="";
    		while(nname==""){	
    			nname = $("#nomfichier").val();
    		}
    		if(nname!=""){
    			xhr.open("POST", "rename.php", true);
    			xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    			xhr.send("idserveur="+ idserveur +"&pname="+pname +"&nname="+ nname);
    		}
     
    }
    actuellement j'ai une boucle infinie..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while(nname==""){	
    			nname = $("#nomfichier").val();
    		}
    j'espère que vous aurez compris mon problème et que vous pourrez m'aider.

    Merci d'avance

    gab


    Citation Envoyé par devyan Voir le message
    Bonjour,

    Pourquoi ne pas déclencher "rename" lors de la fermeture de l'overlay ?
    Je suppose que l'utilisateur saisit le nom et valide sa saisie non ?

    devyan

    Bonjour,

    en utilisant ta solution il faudrait que je puisse passer 2 paramètres lors de l'ouverture de la fenêtre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ('#modal4').dialog('open');
    Je ne vois pas bien comment.



    Gab

  2. #2
    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 : 74
    Localisation : Belgique

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

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#nomfichier").val();
    prend la valeur de l'attribut value d'un input ou d'un select.

    Si c'est le texte de l'élément input ou select que l'on souhaite récupérer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#nomfichier").text();

    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.)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 36
    Par défaut
    Bonjour danielhagnoul,

    J'ai essayé de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var nname ="";
     
    		while(nname==""){	
    			nname = $("#nomfichier").text();
    		}
    Firefox plante.... je pense que cette boucle est infinie. Est ce que quelqu'un voit ce qui cloche .

    Étant donné que cette fonction rename est exécuté après le lancement de la fenêtre j'ai voulu faire une boucle pour que tant que nname n'a pas de valeur (donc que la fenêtre n'a pas été fermée )on enregistre sa valeur.

    merci de votre aide

    gab

  4. #4
    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 : 74
    Localisation : Belgique

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

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

    Citation Envoyé par gabkiel Voir le message
    je pense que cette boucle est infinie.
    Il s'agit du contenu de l'élément d'id monfichier. C'est quoi ? Manifestement il ne contient ni val() ni text() à l'ouverture. Donc nname est toujours vide, donc la condition de sortie de la boucle while n'est jamais satisfaite. Je vous conseille d'examiner votre code avec Firebug.

    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.)

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Bonjour,

    Voilà à quoi je faisait allusion ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $( "#modal4" ).dialog({
       close: function(event, ui) { rename(...); }
    });
    ('#modal4').dialog('open');
    Puisque c'est à priori dans cette boîte que l'utilisateur a saisi $("#nomfichier")

    devyan

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 36
    Par défaut
    merci beaucoup à vous deux j'ai pu finalement arriver à mes fins..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onClick="$('#modal4').dialog({buttons: {ok: function() { $(this).dialog('close');rename(idserveur,name); }}});$('#modal4').dialog('open');"
    et le code de ma fonction rename
    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
    function rename(idserveur,pname){
    	var xhr = getXMLHttpRequest();
     
    	xhr.onreadystatechange = function() {
    		if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
    			 var tmp = xhr.responseText;
    			document.getElementById('operation').innerHTML = tmp;
    		}
    		else if (xhr.readyState < 4) {
    			document.getElementById('operation').innerHTML = '<img src="../img/loading.gif"></img>';
    		}
    	};
     
    		var idserveur = encodeURIComponent(idserveur);
    		var pname = encodeURIComponent(pname);
    		var nname ="";
     
    		nname = $("#nomfichier").val();
     
    		if(nname!=""){
    			xhr.open("POST", "rename.php", true);
    			xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    			xhr.send("idserveur="+ idserveur +"&pname="+pname +"&nname="+ nname);
    		}
    		else{
    			 var tmp = "Erreur, vous n'avez pas saisi un nouveau nom pour votre fichier";
    			document.getElementById('operation').innerHTML = tmp;
    		}
    }

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

Discussions similaires

  1. [UI] Ma boite de dialogue jquery ui
    Par sab_info dans le forum jQuery
    Réponses: 2
    Dernier message: 07/08/2012, 16h55
  2. jQuery boite de dialogue et liste
    Par Thewil dans le forum jQuery
    Réponses: 2
    Dernier message: 18/05/2009, 23h19

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