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 :

Ajax Jquery : click et declenchement d'update


Sujet :

jQuery

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 20
    Par défaut Ajax Jquery : click et declenchement d'update
    Bonjour,

    Je débute en Jquery mais je commence à m'en sortir...
    Par contre sur un developpemet en cours j'ai un problème qui perdure.

    Mon Javascript qui pose problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    jQuery(document).ready(function () {
     
    	jQuery.noConflict();
     
    	jQuery('div.thumb').click(function(){	
    			var target =  jQuery(this).attr('id'); 
    			jQuery.get('ajax_update3.php', { idpourphp:target});
    			jQuery('#'+target + '> .tick').css('display','block');
    			//alert(target);	
    	});
     
    });
    Mon HTML :
    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
     
    <div id="mere">
    	<div id="titre">Charly <span>Charly - Fantastique - Série en cours</span></div>
     
    	<div id="1679" class="thumb">
    		<a href="../C/Charly/Charly - T01 - Jouet d'enfer.cbr" target=\"_blank\"> 
    			<img class="ombrage3" src="../C/Charly/Charly - T01 - Jouet d'enfer.jpg" width="200" height="260" >
    		</a>
    		<br>
    		<span class="titre_album">1 - Jouet d'enfer</span>
    		<div class="tick"><img src="./images/principal/tick1.png" ></div>
    	</div>
    	<div id="1680" class="thumb">
    		<a href="../C/Charly/Charly - T02 - L'Ile perdue.cbr" target=\"_blank\"> 
    			<img class="ombrage3" src="../C/Charly/Charly - T02 - L'Ile perdue.jpg" width="200" height="260" >
    		</a>
    		<br>
    		<span class="titre_album">2 - L'Ile perdue</span>
    		<div class="tick" style="display: block "><img src="./images/principal/tick1.png" ></div>
    		</div>
    	<div id="1681" class="thumb"><a href="../C/Charly/Charly - T03 - Le reveil.cbr" target=\"_blank\"> 
    			<img class="ombrage3" src="../C/Charly/Charly - T03 - Le reveil.jpg" width="200" height="260" >
    		</a>
    		<br>
    		<span class="titre_album">3 - Le reveil</span>
    		<div class="tick" style="display: block "><img src="./images/principal/tick1.png" ></div>
    	</div>
    </div>
    Le Fichier ajax_update3.php appelé par JQuery :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $id  = ($_GET['idpourphp']) ;
    $requete = "UPDATE  `BD`.`principal` SET  `down` =  '1' WHERE  `principal`.`id` ='".$_GET['idpourphp']."'";
     
    if(mysql_query($requete))  
    	{echo '1';}
    else  
        {echo '0';}  
    mysql_close();
    Mon problème : quand je clique successivement sur plusieurs DIV class="thumb" seules certaines déclenchent un UPDATE de la BDD, sans logique apparente, ce ne sont pas toujours les mêmes qui posent problèmes.
    Le plus déstabilisant est que si je décommente dans le javascript : Il n'y a plus de problèmes.

    A votre avis qu'est-ce que j'ai fait de mal ?

  2. #2
    Membre chevronné Avatar de beejeridou
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Par défaut
    Peut etre que les requetes se superposent trop vite... as tu essayé d'utiliser un callback pour la methode jQuery.get(), comme ça ton display block, s'effectuera uniquement quand l'ajax se sera bien déroulé?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                    jQuery.get('ajax_update3.php', function(data)
    		{
    			jQuery('#'+target + '> .tick').css('display','block');
                            alert(data);
    		});
    Met un echo "test"; à la fin de ton fichier php, pour qu'il s'affiche dans l'alert js.

    Si après ça ce n'est pas résolu, une fois j'ai eu ce genre de soucis, et j'ai mis un sleep(0.5); en bas de mon code php et ça a fonctionné.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 20
    Par défaut
    J'ai créer un fichier de log dans la partie PHP, et effectivement toutes les requêtes n'y sont pas.

    Je penche comme toi pour un problème de délais entre 2 requêtes.

    La première méthode que tu proposes me semble être "propre", je vais tenter.

    En extrême recours j'essaierai le sleep, mais est-ce que ce n'est pas un peu barbare ?

    Ceci dit ça me parait étonnant de ne pas pouvoir réaliser 3 requêtes (qui est véritablement en cause: Ajax ? SQL? PHP?) dans la même seconde. Sachant qu'il n'y a que ça sur le serveur !

    Qu'en pensez-vous ?

  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 : 75
    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

    Attention à l'écriture du bloc jQuery.

    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
    <script>
    	jQuery.noConflict();
     
    	jQuery(function($){
    		$('div.thumb').click(function(){	
    			var target =  this.id;
     
    			$.get('ajax_update3.php', {"idpourphp":target}, function(data){
    				// data ?
     
    				$('#'+target + '> .tick').css('display','block');
    			});
    		});
    	});
    </script>

    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 averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 20
    Par défaut
    Citation Envoyé par beejeridou Voir le message
    Peut etre que les requetes se superposent trop vite... as tu essayé d'utiliser un callback pour la methode jQuery.get(), comme ça ton display block, s'effectuera uniquement quand l'ajax se sera bien déroulé?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                    jQuery.get('ajax_update3.php', function(data)
    		{
    			jQuery('#'+target + '> .tick').css('display','block');
                            alert(data);
    		});
    Met un echo "test"; à la fin de ton fichier php, pour qu'il s'affiche dans l'alert js.

    Si après ça ce n'est pas résolu, une fois j'ai eu ce genre de soucis, et j'ai mis un sleep(0.5); en bas de mon code php et ça a fonctionné.

    "alert(data)" ne s'execute pas ?!!!

    en fait quand je rajoute function(data)... l'appel du php n'est plus effectué !
    Une idée du pourquoi ?

    Merci

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 20
    Par défaut
    J'avance tout doucement :

    Cela fonctionne avec firefox mais pas avec Chrome et dans la console de ce dernier j'ai un warning que je ne comprends pas :

    "GET http://192.168.0.224/BD/web/ajax_upd...idpourphp=1111 undefined (undefined)"

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 20
    Par défaut
    Donc sa fonctionne au moins avec Firfox et IE.

    Par contre une nouvelle subtilité qui m'échappe totalement :

    si dans mon HTML je remplace (modification de la balise "target"):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <div id="1680" class="thumb">
    		<a href="../C/Charly/Charly - T02 - L'Ile perdue.cbr" target=\"_blank\"> 
    			<img class="ombrage3" src="../C/Charly/Charly - T02 - L'Ile perdue.jpg" width="200" height="260" >
    		</a>
    		<br>
    		<span class="titre_album">2 - L'Ile perdue</span>
    		<div class="tick" style="display: block "><img src="./images/principal/tick1.png" ></div>
    		</div>
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <div id="1680" class="thumb">
    		<a href="../C/Charly/Charly - T02 - L'Ile perdue.cbr" target=\"_self\"> 
    			<img class="ombrage3" src="../C/Charly/Charly - T02 - L'Ile perdue.jpg" width="200" height="260" >
    		</a>
    		<br>
    		<span class="titre_album">2 - L'Ile perdue</span>
    		<div class="tick" style="display: block "><img src="./images/principal/tick1.png" ></div>
    		</div>
    cela ne fonctionne plus du tout !

    Une idée ?

  8. #8
    Membre chevronné Avatar de beejeridou
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Par défaut
    hummm.... le chemin vers ajax_update3.php est-il bon?

  9. #9
    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 : 75
    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
    Bonjour

    Dans le code HTML : target=\"_self\" target="_self"

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

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 20
    Par défaut
    Citation Envoyé par danielhagnoul Voir le message
    Bonjour

    Dans le code HTML : target=\"_self\" target="_self"
    tu as effectivement raison, je m'en étais rendu compte et avais réalisé la correction, mais cela ne change rien au problème.

    Oui le chemin vers mon php est bon.

    c'est le simple changement de target qui rend mon code infonctionnel.
    j'avais également envisagé qu'il était innaproprié d'utiliser une variable appelée target (mot clé réservé?) je l'ai donc renommée, mais rien n'y fait.

    Argh:!!!!

    j'ai également lu quelque part que dans une version dite mobile de jquery, l'utilisation de _self rendait désactivait jquery en raison d'un bug de sécurité.
    mais je ne pense pas être concerné ... si ?

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 20
    Par défaut
    Là je suis dans l'impasse !

    En résumé :

    si mon target=_blank ou le nom de ma fenetre -> ça fonctionne

    si mon target =_self ou absent -> cela ne fonctionne plus
    avec une erreur (apparaît uniquement dans les logs Safari) de type : ajax_update3.php (not found)

    Help

  12. #12
    Membre chevronné Avatar de beejeridou
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Par défaut
    T'es sur que le chemin est bon avec le message d'erreur "not found" ? ^^

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 20
    Par défaut
    Citation Envoyé par beejeridou Voir le message
    T'es sur que le chemin est bon avec le message d'erreur "not found" ? ^^
    J'obtiens de message uniquement si dans mon code target="_self" (ou pas de target pour repecter W3C).

    Donc je suis sûr que mon chemin est bon.
    Dans le doute j'ai fait un test avec le chemin absolu = idem

  14. #14
    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 : 75
    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
    Bonjour

    Dans le but d'éclaircir la situation, du moins je l'espère !

    S'il vous plaît, pourriez-vous réaliser un test avec le code suivant, exclusivement (placé entre <!-- votre code JS -->), et nous dire les valeurs obtenues dans la console de Chrome et dans celle de Firefox.

    Faite un test sans l'attribut target et pour chaque valeur de l'attribut target.

    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
    <script>
    	jQuery.noConflict();
     
    	jQuery(function($){
    		$('div.thumb').click(function(){	
    			var theID =  this.id;
     
    			// Vérifier le header du fichier  ajax_update3.php
     
    			$.get("ajax_update3.php", { "idpourphp": theID }, function(data, textStatus, jqXHR) {
    				console.log(data, textStatus, jqXHR);
     
    				// succès de la transaction, traité le contenu de data
     
    			}).error(function(jqXHR, textStatus, errorThrown){
    				console.log(jqXHR, textStatus, errorThrown);
     
    				// échec de la transaction, gèrer la catastrophe
     
    			});
    		});
    	});
    </script>

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

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 20
    Par défaut
    Alors tout d'abord je vous remercie pour le temps que vous consacrez à mon problème.

    J'ai donc réalisé les tests que tu m'as demandé :

    avec target="_self" ou pas de target :

    CHROME :
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    abort: function (a){a=a||"abort",p&&p.abort(a),w(0,a);return this}
    always: function (){return b.done.apply(b,arguments).fail.apply(this,arguments)}
    complete: function (){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this}
    done: function (){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this}
    error: function (){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this}
    fail: function (){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this}
    getAllResponseHeaders: function (){return s===2?n:null}
    getResponseHeader: function (a){var c;if(s===2){if(!o){o={};while(c=bI.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c}
    isRejected: function (){return!!c||!!b}
    isResolved: function (){return!!c||!!b}
    overrideMimeType: function (a){s||(d.mimeType=a);return this}
    pipe: function (a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g](h)}):b[a](d[g])})}).promise()}
    promise: function (a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}
    readyState: 0
    responseText: ""
    setRequestHeader: function (a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this}
    status: 0
    statusCode: function (a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this}
    arguments: null
    caller: null
    length: 1
    name: ""
    prototype: Object
    __proto__: function Empty() {}
    apply: function apply() { [native code] }
    arguments: null
    bind: function bind() { [native code] }
    call: function call() { [native code] }
    caller: null
    constructor: function Function() { [native code] }
    arguments: null
    caller: null
    length: 1
    name: "Function"
    prototype: function Empty() {}
    __proto__: function Empty() {}
    length: 0
    name: "Empty"
    toString: function toString() { [native code] }
    __proto__: Object
    statusText: "error"
    success: function (){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this}
    then: function (a,c){b.done(a).fail(c);return this}
    __proto__: Object
    FIREFOX :
    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
    GET http://192.168.0.224/BD/web/ajax_update3.php?idpourphp=2179
    	
    			
    jquery....min.js (ligne 18)
    ParamètresEn-têtesRéponse
    Réponse
    Requête
    Host	192.168.0.224
    User-Agent	Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 FirePHP/0.5
    Accept	*/*
    Accept-Language	fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding	gzip, deflate
    Accept-Charset	ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive	115
    Connection	keep-alive
    X-Requested-With	XMLHttpRequest
    Referer	http://192.168.0.224/BD/web/collectiond.php?collection=Filles%20De%20Soleil%20(Les)%20-%20T1%20a%205
    x-insight	activate
    Object { readyState=0, status=0, statusText="error"} error

    Avec Target="_blank" ou n'importe quoi d'autre (sauf _empty

    CHROME :
    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
    37
    38
    39
    40
    1 success 
    Object
    abort: function (a){a=a||"abort",p&&p.abort(a),w(0,a);return this}
    always: function (){return b.done.apply(b,arguments).fail.apply(this,arguments)}
    complete: function (){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this}
    done: function (){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this}
    error: function (){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this}
    fail: function (){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this}
    getAllResponseHeaders: function (){return s===2?n:null}
    getResponseHeader: function (a){var c;if(s===2){if(!o){o={};while(c=bI.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c}
    isRejected: function (){return!!c||!!b}
    isResolved: function (){return!!c||!!b}
    overrideMimeType: function (a){s||(d.mimeType=a);return this}
    pipe: function (a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g](h)}):b[a](d[g])})}).promise()}
    promise: function (a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}
    readyState: 4
    responseText: "1"
    setRequestHeader: function (a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this}
    status: 200
    statusCode: function (a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this}
    arguments: null
    caller: null
    length: 1
    name: ""
    prototype: Object
    __proto__: function Empty() {}
    apply: function apply() { [native code] }
    arguments: null
    bind: function bind() { [native code] }
    call: function call() { [native code] }
    caller: null
    constructor: function Function() { [native code] }
    length: 0
    name: "Empty"
    toString: function toString() { [native code] }
    __proto__: Object
    statusText: "success"
    success: function (){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this}
    then: function (a,c){b.done(a).fail(c);return this}
    __proto__: Object
    FIREFOX :
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     
     
     
    getchannel
    	[xpconnect wrapped nsIChannel] { name="http://192.168.0.224/BD...ate3.php?idpourphp=2178", status=0, more...}
     
    mozBackgroundRequest
    	false
     
    mozResponseArrayBuffer
    	ArrayBuffer {}
     
    multipart
    	false
     
    onabort
    	null
     
    onerror
    	null
     
    onload
    	null
     
    onloadstart
    	null
     
    onprogress
    	null
     
    onreadystatechange
    	[xpconnect wrapped nsIDOMEventListener] {}
     
    onuploadprogress
    	null
     
    readyState
    	4
     
    responseText
    	"1"
     
    responseXML
    	null
     
    status
    	200
     
    getstatusText
    	"OK"
     
    getupload
    	XMLHttpRequestUpload { constructor=XMLHttpRequestUpload}
     
    withCredentials
    	false
     
    constructor
    	[object XMLHttpRequest]
     
    abort
    	abort()
     
    addEventListener
    	addEventListener()
     
    dispatchEvent
    	dispatchEvent()
     
    getAllResponseHeaders
    	getAllResponseHeaders()
     
    getInterface
    	getInterface()
     
    getResponseHeader
    	getResponseHeader()
     
    open
    	open()
     
    overrideMimeType
    	overrideMimeType()
     
    removeEventListener
    	removeEventListener()
     
    send
    	send()
     
    sendAsBinary
    	sendAsBinary()
     
    setRequestHeader
    	setRequestHeader()
     
    __proto__
    	[xpconnect wrapped native prototype] {}

  16. #16
    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 : 75
    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

    En résumé :

    Avec target="_self" ou pas de target

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    readyState: 0
    responseText: ""
    status: 0
    length: 1
    name: "Empty"
    statusText: "error"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GET http://192.168.0.224/BD/web/ajax_update3.php?idpourphp=2179
    Object { readyState=0, status=0, statusText="error"} error
    Avec target="_blank"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    readyState: 4
    responseText: "1"
    status: 200
    length: 0
    name: "Empty"
    statusText: "success"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    getchannel "http://192.168.0.224/BD...ate3.php?idpourphp=2178", status=0, more...}	
    readyState 4
    responseText "1"
    status 200
    getstatusText "OK"
    On a donc un échec lorsque "idpourphp" vaut 2179 et un succès pour 2178. Cette valeur est l'ID de la division ayant la classe "thumb". Et cet ID n'est pas identique dans les deux tests !

    Nota bene : un ID doit être unique et il doit toujours commencer par un caractère alphabétique.

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

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 20
    Par défaut
    alors excuse moi c'est un total manque de rigueur de ma part lorsque j'ai réalisé le test.

    Pour répondre à ton nb : l'ID est assurément unique il est en fait issu de la clé primaire de ma BDD (c'est un autoincrement).
    Il ne commence cependant pas par une lettre, c'est vrai.

    tu trouveras ci dessous les résultats de 2 tests parfaitement équivalents:


    Avec target="_self" ou pas de target

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    GET http://192.168.0.224/BD/web/ajax_update3.php?idpourphp=5682
    idpourphp	5682
    Object { readyState=0, status=0, statusText="error"} error
    Avec target="_blank"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    GET http://192.168.0.224/BD/web/ajax_update3.php?idpourphp=5682  200 OK  109ms	
    1 success Object { readyState=4, responseText="1", status=200, statusText="success"}

  18. #18
    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 : 75
    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

    Une seule conclusion s'impose, c'est le mystère du "target" !

    Si c'est la seule différence entre le succès et l'échec, je n'ai pas la solution.

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

Discussions similaires

  1. Jquery/AJAX function click qui ne fonctionne pas.
    Par prome dans le forum jQuery
    Réponses: 2
    Dernier message: 12/03/2009, 12h57
  2. Réponses: 5
    Dernier message: 30/01/2009, 20h20
  3. Réponses: 3
    Dernier message: 16/01/2009, 14h36
  4. Effets après ajax (jQuery)
    Par arena94 dans le forum jQuery
    Réponses: 1
    Dernier message: 12/10/2008, 12h14
  5. Réponses: 1
    Dernier message: 07/10/2008, 12h17

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