2013-03-27 133 views
0

我有一個AJAX腳本,它向PHP腳本發送值並從PHP腳本中檢索值。腳本發送值的部分工作正常。它是檢索值的問題。我無法弄清楚什麼是錯的。AJAX調用返回值不起作用

AJAX代碼:

$(document).ready(function() { 
    $("#raaagh").click(function() { 
     $.ajax({ 
      url: 'ajax.php', //This is the current doc 
      type: "POST", 
      data: ({name: 145}), 
      success: function(data) { 
       console.log(data); 
       $.ajax({ 
        url:'ajax.php', 
        data: data, 
        dataType:'json', 
        success:function(data1) { 
         var y1=data1; 
         console.log(data1); 
        } 
       }); 
      } 
     }); 
    }); 
}); 

PHP代碼:

<?php 

$userAnswer = $_POST['name'];  

echo json_encode($userAnswer);  
?> 
+0

沒有錯誤。第二個Ajax沒有提供任何價值。 – 2013-03-27 05:27:43

+0

@jibindcruz你是否試圖將第二個Ajax調用的'data'屬性變成'string'?看來JavaScript正在評估'data'參數的值作爲屬性名稱。試試像這樣:''data':data'。 – PanterA 2013-03-27 05:47:05

+0

@jibindcruz是與JavaScript相同的域名的PHP腳本?如果沒有,則必須實施CORS或使用JSONP。要驗證ajax請求是否已到達您的php腳本,請在您的php腳本中打開一個文件,並在前端調用php腳本時向該文件寫入內容。 – herrjeh42 2013-03-27 07:39:02

回答

0
data: {name: 145} 

試試這個,希望這會工作。

0

請在將值賦給$ userAnswer之前檢查是否發佈了「名稱」。

這兩個ajax腳本都發送到「ajax.php」。在第一個Ajax請求「名稱」張貼,但在第二個Ajax請求「名稱」不張貼。

要查看警告和錯誤,請在php中啓用錯誤報告。

<?php 
//To enable error reporting 
ini_set('display_errors',true); 
error_reporting(E_ALL); 
0

套裝type:'POST'第二Ajax調用內部並嘗試使用data1[0]
還要記住,你正在發送一個json字符串(來自第一個ajax)和第二個請求。
基本上你正在編碼一個編碼值,所以當你收到帖子值時,你應該json_decode後值

0

你的嵌套AJAX調用沒有指定的請求類型。默認是GET,但你的ajax.php試圖找到一個POST。

$(document).ready(function() { 
$("#raaagh").click(function() { 
    $.ajax({ 
     url: 'ajax.php', 
     type: "POST", 
     data: ({name: 145}), 
     success: function(data) { 
      console.log(data); 
      $.ajax({ 
       url:'ajax.php', 
       type: "POST",  //<-- added here 
       data: {name:data}, //<-- also required for POST 
       dataType:'json', 
       success:function(data1) { 
        var y1=data1; 
        console.log(data1); 
       } 
      }); 
     } 
    }); 
}); 

});