2012-10-10 33 views
0

我知道這已經涵蓋了很多你和數百個帖子,但我沒有看到任何人像我有問題。ajaxForm not callingBack

我想實現AjaxForm來上傳文件。我閱讀了所有的教程,文檔,例子......所有內容。

HTML:

<form action="scripts/upload_script.php" method='post' id="upload_picture_form" enctype="multipart/form-data"> 
    File: <input type="file" name="upload" id="upload" /></p> 
    <p><input type="submit" name='submit' value="Submit" /></p> 
</form> 

的Jquery:

$('#upload_picture_form').ajaxForm({ 
    success: function(){ 
    alert('success'); 
    }, 
    error: function(){ 
    alert('error'); 
    }, 
    resetForm:true 
}); 

當我提交表單時,給ajaxForm被調用,在螢火蟲可以看我的PHP文件被調用,我也可以看到,幾個'ms'後的迴應是'200 OK',我可以看到php發送的HTML響應。

問題出在響應之後沒有'成功'或'錯誤'被觸發,表單沒有被重置......看起來沒有回調。

誰能告訴我我做錯了什麼? 從PHP的'回聲'是否必須在某種特定的格式?我發送一個簡單的「File:image.jpg(7487字節)」回到jQuery。

問候。

+0

嘗試在'success' /'error'範圍內添加'resetForm:true'作用域 – Bongs

+0

'success','error','complete'本身就是回調函數。 – Bongs

+0

沒有調用成功或錯誤。 – user1141673

回答

0

這裏是返回回調事件爲好ajaxFrom的小例子:

<form id="imageform" enctype="multipart/form-data" action="get_img.php" method="post"> 
<tr> 
    <td valign="top"><label>Select File</label> :</td> 
    <td><input type="file" name="myfile" id="myfile" /> <br /> 
    <em>.jpeg, .jpg, .gif, .png, .bmp</em> 
    </td> 
</tr> 
</form> 

<div id="result"></div> 

現在使用jQuery:

$(function(){ 
$('#myfile').live({ 
    change: function(){ 
      $('#result').ajaxStart(function(){ 
       $(this).html('<div class="loader" />'); 
      }); 

      $('#imageform').ajaxForm({ 
           target: '#result', 
           success: function(){ // Call Back Function } 
          }).submit(); 
     } 
}); 
}); 

實施這裏ajaxFrom提交圖像而沒有目的點擊事件,在上面的jQuery代碼中,我已附加Change上的事件,表單被自動提交併調用get_img.php正在執行中。

target你會得到什麼,你已經通過文件get_img.php返回,
success你設置你想要的任何回調方法。

+0

嗨Jogesh_p,謝謝你的回覆。我可以問你一個簡單的例子什麼可能是** get_img.php **只是爲了看看我是否可能在PHP上做錯了。 – user1141673

+0

@ user1141673請點擊鏈接:http://blog.webtech11.com/2012/03/18/ajax-based-instant-image-upload.html –

+0

只是看不到如何實現。 $(document).ready(function(){'? – user1141673