2013-03-02 95 views
0

我想創建一個登錄頁面。 所以我把一個驗證碼圖片中的登錄表單與下面的HTML代碼:使用AJAX更改圖像

<img name="captcha" id="captcha" src="captcha/CaptchaSecurityImages.php?width=90&height=28&characters=5"/> 

,我把一個按鈕,用戶可以點擊更改驗證碼,如果它是不可讀如下:

<input type="button" name="new_Captcha_button" onClick="new_captcha()"/> 

我寫了一個腳本遵循的工作只是在鍍鉻:

<script type="text/javascript"> 
function new_captcha() 
    { 
     document.images["captcha"].src = "captcha/CaptchaSecurityImages.php?width=90&height=28&characters=5"; 
    } 
</script> 

,但它並沒有在其他瀏覽器工作,所以我用以下內容替換以前的代碼:

<script type="text/javascript"> 
function new_captcha() 
    { 
     var xmlhttp; 
     if (window.XMLHttpRequest) 
      {// code for IE7+, Firefox, Chrome, Opera, Safari 
      xmlhttp=new XMLHttpRequest(); 
      } 
     else 
      {// code for IE6, IE5 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
     xmlhttp.onreadystatechange=function() 
      { 
      if (xmlhttp.readyState==4 && xmlhttp.status==200) 
      { 
       document.getElementById("captcha").src = xmlhttp.responseText; 
       } 
      } 
     xmlhttp.open("GET","captcha/CaptchaSecurityImages.php?width=90&height=28&characters=5",true); 
     xmlhttp.send(); 
    } 

所以,請告訴我什麼樣的變化,我需要在我的代碼做,使之正確。我想我需要改變一下行:

document.getElementById("captcha").src = xmlhttp.responseText; 

非常感謝。

回答

1
<script type="text/javascript"> 
function new_captcha() 
    { 
     document.getElementById('captcha').src = 'captcha/CaptchaSecurityImages.php?width=90&height=28&characters=5&_t=' + Math.random(1); 
    } 
</script> 

不需要使用ajax,函數new_captcha()就可以。

+0

歡迎來到Stackoverflow ..!請詳細說明你的問題。 – 2013-03-02 09:24:59

1

你可以嘗試這樣做

的login.php

<div id="captcha_container"></div> 
<input type="button" id="btn_recaptcha" value="Recaptcha"> 

<script> 
function ajax_loadpage(loadUrl,output_container) 
    { 
     $.post 
     (
      loadUrl, 
      {language: "php", version: 5},function(responseText){$(output_container).html(responseText);},"html" 
     ); 
    } 

ajax_loadpage("captcha_page.php","#captcha_container"); 

$('#btn_recaptcha').click(function(){ 
    ajax_loadpage("captcha_page.php","#captcha_container"); 
}) 
</script> 
______________________________________________________________________________________ 
captcha_page.php 
<img width="212" height="53" src="captcha.php"> 

captcha.php包含我的圖形驗證碼,它包含了一個header ("Content-type: image/gif");代碼,所以我需要在那裏我可以節省額外的PHP文件圖像文件,從而使用我的captcha_page.php。 爲我工作:)