0

我正在尝试使用 AJAX 来更改我的网页。xml_whoid.php似乎工作正常。jQuery 在我添加函数之前一直有效(即使它只是警报)。我怀疑这是语法错误,但我找不到问题。

我也不知道如何访问返回值。我有一本 jQuery 书,但它没有说明如何在比较语句中使用 AJAX 返回值。我用谷歌搜索了很多次,但这些例子有 function(result) { "process data here" or "result.data.length" }

这似乎是一个简单的问题,但我一直在努力解决这个问题,因为我不想问另一个(愚蠢的)问题,但可以从我的备份日期看出我一直在试图让这个 AJAX 代码工作 5天。

                        xml_whoid.php      
    <?php                                            
    require_once("../../includes/initialize.php");
    require_once("../../includes/functions.php");
    require_once("../../includes/session.php");
    require_once("../../includes/database.php");
    if ($session->is_logged_in()) {
        $idwho=$_POST["idwho"];
        $session->changeidwho($idwho);
        $whos  = Whostaff::find_one_by_who($idwho);
        if ($whos) {
            echo "1";
        } else {
            echo "0";
        }
    }
?>


<script type="text/javascript">
    function changewho(idwho,mydesc) {
        $('#who').html(mydesc);
        $('#whofoot').html(mydesc);
        $('#whomaint').html(mydesc);
        $("#visible1").show();  
        $("#visible2").show();  
        $("#visible3").show();  
        $("#visible4").show();  
        $("#visible5").show();  
        $.post('xml_whoid.php', { idwho: idwho }); 
        $.ajax({
            url: "xml_whoid.php",
            type: "POST",
            async: false,
            data: {
                idwho: idwho
            },
        function(result) {                 // This code causes everything to fail.
            alert('Fetched');              //
            //if(result==0){               // I have searched and searched but 
            //  $("#visible6").show();     // I cannot work out if this is how 
            //}                            // to access the returned value.
        }                              
    }); 
}  
</script>

我使用“async: false”,因为这个页面不经常使用,只在内部使用。

4

3 回答 3

3

你错过了关键success

$.ajax({
   url: "xml_whoid.php",
   type: "POST",
   async: false,
   data: {
     idwho: idwho
   },
   success: function(result) {
     alert('Fetched');
   }                              
}); 
于 2013-07-29T09:27:50.260 回答
1

ajax 调用有一个回调函数success和另一个error.
使用函数成功,您可以检索从函数返回的消息。
使用函数错误,您可以处理 php 页面中的错误或错误。在您的代码中,您错过了插入回调函数的名称。
尝试这个:

$.ajax({
            url: "xml_whoid.php",
            type: "POST",
            async: false,
            data: {
                idwho: idwho
            },
            success: function(result) {                
              alert('Fetched');              
            },
            error: function(error) {                 
              alert(error);                                     
            }                              
    }); 
于 2013-07-29T09:29:13.320 回答
0

返回函数应写为

success: function(result) {
  alert('Fetched');
}
于 2013-07-29T09:31:24.893 回答