2014-10-10 181 views
-1

我想通過jQuery在php頁面之間傳遞變量。在頁面之間傳遞jQuery參數

我的代碼:我用這對fullcalendar.js API:

第一頁:EventMain.php

select: function (start, end) { 

    $.ajax({ 
     url: '/dev/Event/Event.php', 
     type: 'POST', 
     data: {name: 'John'} 
    }); 

    PopupCenter(url,'Event', 1000, 450) 
} 

在隨後彈出的第二個頁面打開:Event.php。我需要名稱變量

var Name = <? php echo $_POST['name']; ?>; 

alert(Name); 

警報是空白..我不明白爲什麼?

我知道我可以在URL發送變量作爲參數,然後在Event.php使用getUrlParameter得到變量:

function getUrlParameter(sParam){ 
    var sPageURL = window.location.search.substring(1); 
    var sURLVariables = sPageURL.split('&'); 
    for (var i = 0; i < sURLVariables.length; i++) 
    { 
     var sParameterName = sURLVariables[i].split('='); 
     if (sParameterName[0] == sParam) 
     { 
      return sParameterName[1]; 
     } 
    } 
} 

但我不希望發送該URL的變量。有沒有其他方式發送變量?

+0

警報如何通過ajax請求顯示? – 2014-10-10 10:42:58

+0

對於初學者,您的姓名=部分應引用'';否則你會得到一個JS錯誤。使用螢火蟲NET面板來查看你回覆的迴應。我懷疑你能夠在ajax調用上觸發警報,並且我期望AJAX調用可以執行更新 - 然後你可以在PHP中輸出並在NET面板中查看它。 – Ukuser32 2014-10-10 10:43:32

+0

警報未通過ajax請求顯示。我通過ajax將EventMain.php中的變量發送給Event.php,然後a應該能夠在Event.php的php $ _POST中讀取它。但它不起作用。你們認爲這與異步有關嗎? – user3163404 2014-10-10 10:44:46

回答

1

您不能在另一個會話中訪問POST變量。

您打開的彈出窗口是對沒有數據的頁面的新請求。

沒有合理的解決方案,你試圖實現。

+0

那麼有沒有其他的jQuery中的頁面之間傳遞變量而不是url作爲參數? – user3163404 2014-10-10 10:48:02

+0

如果您不想將變量傳遞給PHP以用於以後的請求,請保存發佈到會話的數據。您不能以異步方式訪問數據。 – Repox 2014-10-10 10:49:43

1

傳球EventMain.php的變量Event.php

$.ajax({ 
     type: 'post', 
     url : '/dev/Event/Event.php', 
     data: { name : 'John'}, 
     success: function(response) { // return content from Event.php (result) page 
       // Do your operation with result 
      } 
    }); 

在Event.php

<?php 
$name = $_POST['name']; 
// Perform your actions with $name and return result as 
echo $yourresult; 
exit; 
?> 
+0

這不回答關於*爲什麼*這個嘗試不起作用的問題。 – Repox 2014-10-10 10:47:28

+0

問題是我需要在Event.php上使用jquery中的變量。 – user3163404 2014-10-10 10:49:06

0

試試這個方法...

eventMain.php

$.post('/dev/Event/Event.php',{'name':'John'}, function(data){ 
    // do something with response 
}); 

Event.php

<?php 
    $name = $_POST['name']; 
?> 

<script> 
    console.log('<?= $name; ?>'); 
</script> 
+0

這有效。但是我仍然無法在Event.php的jQuery中訪問$ name。 – user3163404 2014-10-10 10:53:18

+0

你可以在'javascript' ..或('jQuery',如果你在'Event.php'中使用它)看到更新的答案 – 2014-10-10 10:58:25

+0

它不起作用。問題是我知道它應該.. – user3163404 2014-10-10 11:07:25

0

我認爲在第二頁值分配給變量name當你忘了""

第一頁:

<!-- you don't forget this tag to see the result //--> 
<div id="content"></div> 

$.ajax({ 
    url: 'page.php', 
    type: 'POST', 
    data: {name: 'John'}, 
    success: function (data) { 
     $('#content').html(data); 
    } 
}); 

第二頁(event.php):

<script type="text/javascript"> 
    var name = "<?php echo $_POST['name']; ?>"; 
    alert(name); 
</script> 

我前面的代碼工作,我測試過它。