2012-03-30 5 views
0

참조 : Loading gravatar using jqueryGravatar에 자바 스크립트 여러 이메일

나는 페이지와 코드에 여러 개의 이메일을 그러나 페이지의 Gravatar에를 생성하기 위해 위의 방법을 사용하고 하나의 MD5, 따라서 하나의 Gravatar에 내 JS를 생성 내가 암호화 MD5 http://code.google.com/p/crypto-js/ 사용하고

var email = $('#email').val(); 
var digestString = Crypto.MD5(email); 
$('#md5').val(digestString); 
var gravatar = $('<img>').attr({src: 'http://www.gravatar.com/avatar/' + digestString}); 
$('.gravatar').append(gravatar); 

하고는 이메일 숨겨진 입력에서 개최 된 헤더에로드 :이다

<input type="hidden" id="email" value="<?php echo $message['contact_email'];?>"> 

이것은 각 사용자에게 알맞은 인쇄입니다. 근무

<div class="message-author"> 
<span class="gravatar" style="height: 24px;"> 
     <img src="http://www.gravatar.com/avatar/82c9a9c254f35a912d8fefc248c30fd8"></span> 
     <input type="hidden" id="md5" value="82c9a9c254f35a912d8fefc248c30fd8"> 
     <input type="hidden" class="email" value="[email protected]"> 
</div> 

HTML 출력하지 :

<div class="message-author"> 
<span class="gravatar" style="height: 24px;"> 
     <img src="http://www.gravatar.com/avatar/82c9a9c254f35a912d8fefc248c30fd8"></span> 
     <input type="hidden" id="md5" value=""> 
     <input type="hidden" class="email" value="[email protected]"> 
</div> 

PHP

어떤 도움을

HTML 출력 작업 큰

편집 ***** 것

<?php foreach ($messages['page'] as $message): ?> 
    <li class="message"> 
     <div class="message-body"><?php echo $message['message']; ?></div> 
     <div class="message-author"> 
      <span class="gravatar" style="height: 24px;"></span> 
      <input type="hidden" class="md5" value=""> 
      <input type="hidden" class="email" value="<?php echo $message['contact_email'];?>"> 
      <?php echo $message['contact_person'];?> - 
      <?php echo date("m M - g:i a", $message['created']); ?> 
     </div> 
    </li> 
<?php endforeach; ?> 
+0

이메일을 보유한 각 ''에 상대적으로'.gravatar' 요소가 어떻게 배치되었는지 HTML을 통해 볼 수 있습니까? PHP를 사용할 수 있습니까? PHP에서이 작업을 수행하지 않는 이유는 무엇입니까? 동일한 페이지에서 여러 요소에 대해 동일한 ID를 사용하고있는 것처럼 보입니다. .. 이것은 유효하지 않습니다. ID는 고유해야합니다 ... 대신 클래스를 사용해보십시오. – Matt

+1

요청에 따라 @Matt가 추가되었습니다. 가능하면 자바 스크립트를 사용하고 싶습니다. 멀리까지 –

+1

왜 PHP로 모든 md5 해시와 이미지 및 물건을 생성하지 않습니까? –

답변

1

는 다음과 같은 시도 :

$('input.email').each(function() { 
    var self = $(this); 
    var md5 = Crypto.MD5(this.value); 

    self.siblings('.md5').val(md5); 
    self.siblings('.gravatar').append($('<img />').prop('src', 'http://www.gravatar.com/avatar/' + md5)); 
}); 

당신은 (each() 통해) 루프를 도입 할 필요가 각 email 요소를 개별적으로 상담; 당신은 깨달았에만 일치하는 요소의 값을 반환합니다 같은 val() 달리, 첫 번째는 (같은 게터 바라 보았다된다.

그러나, 나는 in my comment 암시로,이해야 정말 PHP에 대한 직업이 될 수도 있고 HTML로 사용자의 이메일을 보내는 사생활 침해 문제 일 수도 있습니다.

관련 문제