2010-07-31 6 views
2

J'utilise script suivant pour obtenir Gravatar sur ma page dynamique,Besoin d'aide avec ce script

<input type="text" id="email" value="{$clientemail}" style="display:none;"/> 

    $(document).ready(function(){   
       $('.p').append($.gravatar($('#email').val(), { 
       method: 'append', 
       size: '100', 
       image: '/images/1.png', 
       rating: 'r' 
      })); 
     }); 


<div class="p" style="width:100px;height:100px"> 

Je dois charger la valeur de {$clientemail} en utilisant le code suivant d'une autre page.

$('#email').load('clientarea.php? #clientemail'); 

Mon problème est .load est de prendre quelques secondes pour charger & Alors .append est l'envoi valeur nulle, ce qui dans l'image par défaut Gravatar.

Comment est-ce que je surmonte cette isuue ??

Merci

+0

Êtes-vous 1 00% que '# email' contient une adresse e-mail valide? –

Répondre

3

Vous devez coller le code append dans le rappel load, comme ceci:

$('#email').load('clientarea.php? #clientemail' function() { 
    $('.p').append($.gravatar($(this).val(), { 
      method: 'append', 
      size: '100', 
      image: '/images/1.png', 
      rating: 'r' 
     })); 
}); 

Bien que, .load() dans un élément d'entrée comme celui-ci n'est pas recommandé, il serait mieux d'utiliser une demande $.get() et saisir cette valeur, comme ceci:

$.get('clientarea.php?', function(data) { 
    var val = $('#clientemail', data).val(); 
    //if needed: $('#email').val(val); 
    $('.p').append($.gravatar(val, { 
      method: 'append', 
      size: '100', 
      image: '/images/1.png', 
      rating: 'r' 
     })); 
}); 
+0

Merci Nick! $ .get() suggestion a fonctionné parfaitement .. – MANnDAaR