2014-07-23 107 views
0

我有以下Ajax請求

function send(){ 
//selected Pictures: some int array 
var jsonArray = JSON.stringify(selectedPictures); 

var request; 
request = $.ajax({ 
url: "targetPage.php", 
type: "POST", 
data: {data: jsonArray}, 
cache: false 
});} 

我通過

href="targetPage.php" onclick="send();" 

我要訪問數組中的一個HTML文件提交或PHP腳本並將其包含在HTML中。 當我檢查我的瀏覽器的開發工具的HTTP流量,我看到POST實際工作正常,正確的數組數據發送,但是當我想訪問數據與

if(isset($_POST['data'])){ 
    $data = json_decode(stripslashes($_POST['data'])); 
} 

什麼也沒有發生因爲isset返回false。似乎有某種我缺少的運行時或執行順序問題。

+0

這就是cycle2-tile.php中唯一的代碼嗎? –

+0

html在哪裏?有沒有名爲「數據」的輸入? – Dan

+0

數據處於AJAX @Dan的數據管理中 –

回答

2

問題是你的href,它會讓你的瀏覽器導航到該頁面而不發送信息,所以你有喲刪除它;因爲你通過ajax呼叫進行呼叫。

所以:

<a href="#" onclick="send();"></a> 

如果你想在調用之後被重定向的頁面,你應該添加成功函數Ajax調用:

function send(){ 
    //selected Pictures: some int array 
    var jsonArray = JSON.stringify(selectedPictures); 

    var request; 
    request = $.ajax({ 
     url: "targetPage.php", 
     type: "POST", 
     data: {data: jsonArray}, 
     cache: false, 
     success: function() { location.href = "targetPage.php"; } 
    }); 
} 
+0

但是我必須導航到之後的頁面或不同的頁面,並希望一次點擊就可以完成這兩個操作。 – Pete

+1

然後你可以在ajax調用成功時添加一個函數: 'success:function(){location.href =「targetPage.php」; }' –

+0

嘿,謝謝,我認爲我們走在正確的軌道上。但是,我仍然無法訪問傳遞的變量。 – Pete

0

如果您想發表和重定向你可以這樣做:

<form method="post" action="http://localhost/DLFin/welcome.php" id="my_form"> 
    <input type="hidden" id="name" name="name"> 
</form> 

SCRIPT:

function send(){ 
     //selected Pictures: some int array 
     var jsonArray = JSON.stringify(selectedPictures); 

     var request; 
     request = $.ajax({ 
      url: "targetPage.php", 
      type: "POST", 
      data: {data: jsonArray}, 
      cache: false, 
      success: function() { $('#name').val('sajal'); 
     $('#my_form').submit(); } 
     }); 
    }