2011-12-04 50 views
-2

我在這裏有兩個問題,第一個下面的代碼將無法正常工作,任何人都可以告訴我我錯過了什麼?第二,我想從PHP返回值成功函數,然後該值也將返回到父功能...Ajax函數到PHP

function myFunc(e){ 
    $.ajax({ 
     type: "post", 
     url: "path/myPhp.php", 
     data: "val="+e, 
     dataType: "php", 
     success: function(result){ 
      return result; //i want this result to be returned to parent function myFunc(e) 
     }, 
     error: function(e){ 
      alert('Error: ' + e); 

     } 
    }); 

} 
+0

這不是一個「我的代碼不會工作」的網站。 –

回答

2

有一個名爲PHP的jQuery AJAX沒有數據類型。 法律數據類型如下:

XML
HTML
腳本
JSON
JSONP
文本

你的意思是 「JSON」 數據類型?

0

1)'dataType'中的值無效。有效值爲:xml,json,腳本或html。

2)正如我所看到的,您希望ajax調用以同步方式運行。

使用'async:false'來完成該操作。嘗試:

function myFunc(e){  
    var value = ""; 
    $.ajax({ 
     type: "post", 
     url: "path/myPhp.php", 
     data: "val="+e, 
     dataType: "json", 
     success: function(result){ 
      value = result; 
     }, 
     error: function(e){ 
      alert('Error: ' + e); 
     }, 
     async: false // set synchronous 
    }); 
    alert(value); // use value 
} 

或者

$.ajaxSetup({async:false}); 

發行$。阿賈克斯()調用之前。

有關使用同步AJAX的討論可以在這裏找到How can I get jQuery to perform a synchronous, rather than asynchronous, Ajax request?

0

如果你想你的迴應返回爲函數的返回值,那麼你需要使它阿賈克斯同步後來阿賈克斯取消同步阿賈克斯後完成

如果你的返回響應不是數組,那麼我認爲這將起作用。

function myFunc(e){ 
    var returnValue = ''; 
    $.ajaxSetup({async:false}); // synchronize 
     $.ajax({ 
      type: "post", 
      url: "path/myPhp.php", 
      data: "val="+e, 
      success: function(result){ 
       returnValue = result; 
      }, 
      error: function(e){ 
       alert('Error: ' + e); 

      } 
     }); 
    $.ajaxSetup({async:true});// Unsynchronize 
    return returnValue; 

    }