2012-05-09 110 views
2

我在jquery中調用了一個php文件來對我的數據庫執行某些操作的ajax函數,但結果可能會有所不同。我想輸出不同的消息是否成功與否將php變量返回給jquery ajax

我有這樣的:

echo '<button id="remove_dir" onclick="removed('.$dir_id.')">remove directory</button>'; 

<script type="text/javascript"> 
    function removed(did){ 
     $.ajax({ 
      type: "POST", 
      url: "rmdir.php", 
      data: {dir_id: did}, 
      success: function(rmd){ 
       if(rmd==0) 
        alert("deleted"); 
       else 
        alert("not empty"); 
       window.location.reload(true); 
      } 
     }); 
    } 
</script> 

<?php 
require('bdd_connect.php'); 
require('functions/file_operation.php'); 
if(isset($_POST['dir_id'])){ 
    $rmd=remove_dir($_POST['dir_id'],$bdd); 
} 
?> 

我的問題是,如何返回$在$ RMD左右。阿賈克斯,我可以提醒正確的消息?

感謝你的答案

回答

4

PHP

<?php 
    require('bdd_connect.php'); 
    require('functions/file_operation.php'); 
    if (isset($_POST['dir_id'])){ 
     $rmd=remove_dir($dir_id,$bdd); 
     echo $rmd; 
    } 
?> 

JS

function removed(did){ 
    $.ajax({ 
     type: "POST", 
     url: "rmdir.php", 
     data: {dir_id: did} 
    }).done(function(rmd) { 
     if (rmd===0) { 
      alert("deleted"); 
     }else{ 
      alert("not empty"); 
      window.location.reload(true); 
     } 
    }); 
} 
+0

謝謝你的作品 – user1385745

3

我建議使用JSON或:

if(isset($_POST['dir_id'])){ 
    $rmd=remove_dir($dir_id,$bdd); 
    echo $rmd; 
} 
0

剛剛嘗試呼應$在你的Ajax文件RMD,然後看着控制檯(嘗試console.log(rmd)在你的Ajax響應塊)

$.ajax({ 
     type: "POST", 
     url: "rmdir.php", 
     data: {dir_id: did}, 
     success: function(rmd){ 

      console.log(rmd); 
     } 
    }); 

然後,您可以採取相應的行動基礎上,響應

0

嘗試呼應的PHP代碼RMD出$,作爲重返阿賈克斯。

if(isset($_POST['dir_id'])){ 
    $rmd=remove_dir($dir_id,$bdd); 
    //if $rmd = 1 alert('directory not empty'); 
    //if $rmd = 0 alert('directory deleted'); 
    echo $rmd; 
} 

你 「RMD」 在success: function(rmd)應該收到callabck。

1

你需要你的php文件來發回一些東西,然後你需要在原始頁面上調用ajax來根據響應行爲。

PHP:

將輸出的兩兩件事之一
if(isset($_POST['dir_id'])){ 
    $rmd=remove_dir($dir_id,$bdd); 
    echo "{'rmd':$rmd}"; 
} 

:基於{"rmd": 0}{"rmd": 1}

我們可以模擬在jsBin

這個返回然後使用jQuery獲得的價值,做一些對我們回覆的回覆:

$.ajax({ 
    type: "POST", 
    dataType: 'json', 
    url: "http://jsbin.com/iwokag/3", 
    success: function(data){ 
     alert('rmd = ' + data.rmd) 
    } 
}); 

View the code,然後watch it run。 只有我沒有在這裏發送任何數據,我的示例頁面總是返回相同的響應。