当我尝试使用返回值时,为什么我的AJAX代码会失败?

时间:2013-07-29 09:26:06

标签: jquery ajax

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

我也不知道如何访问返回的值。我有一本jQuery书,但它没有说明如何在compare语句中使用AJAX返回值。我用google搜索了很多次,但是这些例子都有           function(result){              “在此处理数据”或“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”,因为此页面并不经常使用且仅在内部使用。

3 个答案:

答案 0 :(得分:3)

您错过了密钥success

$.ajax({
   url: "xml_whoid.php",
   type: "POST",
   async: false,
   data: {
     idwho: idwho
   },
   success: function(result) {
     alert('Fetched');
   }                              
}); 

答案 1 :(得分: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);                                     
            }                              
    }); 

答案 2 :(得分:0)

返回功能应写为

success: function(result) {
  alert('Fetched');
}