[英]Post data to another php page using ajax
我使用Fullcalendar(javascript)。 當您單擊事件時,它將打開一個包含其內容的表單。
eventClick: function(calEvent, jsEvent, view) {
content.val(calEvent.content); //content of event
$('#event').show();
formOpen('edit');
},
當您單擊該事件時,我想這樣做,它打開另一個php頁面並在其中顯示其數據。 現在,我正在嘗試僅將“ hello”字符串發送到PAGE2。
eventClick: function(calEvent, jsEvent, view) {
var content = "hello";
$.ajax({
type:'POST',
cache: false,
dataType: "text",
url: "page2.php?id=<?php echo $_SESSION['id']?>",
data: { content: content },
success: function(data){
location.href = 'page2.php?id=<?php echo $_SESSION['id']?>';
},
});
},
第2頁
$content = $_POST['content'];
echo $content;
在瀏覽器中,我看到當您單擊一個事件時,它在PAGE2上執行了FORM DATA:content:hello的POST請求。 然后有一個到PAGE2的過渡,還有一些沒有數據的GET請求。 在PAGE2上,我看到錯誤:未定義索引:內容。
我花了很多天試圖解決這個問題,但是還沒有找到解決方案。 請幫助我了解錯誤在哪里。
似乎您可以創建一個<form method='post' action='page2.php?id=....'
並使用名為content的隱藏input
,然后在其onClick
中填充隱藏內容后在您的onClick
調用表單提交功能輸入所需內容的價值
有一點像
<form id ="theForm" action="page2.php?id=<?php echo $_SESSION['id']?>" method="POST">
<input type="hidden" name="content" id="content"/>
</form>
<script>
eventClick: function (calEvent, jsEvent, view) {
var content = document.getElementById('content');
var form = document.getElementById('theForm');
content.value = 'hello'; // based on your example, obviously you need a value based on the click
form.submit();
},
</script>
因為當您發送ajax請求時,您將通過內容發送。
但是成功后,您可以使用location.href定位到PAGE2,這將創建一個與上一個ajax調用不同的http請求。
我可以通過將內容值通過GET而不是POST來實現您的目標。
另一種適用於POST請求的方法是在html頁面上使用隱藏的表單,即將名稱為“ content”的輸入設置為您的內容。 然后調用該表單的提交功能。
有關此方法的示例,請轉到以下堆棧溢出問題和答案: https : //stackoverflow.com/a/26697375/7058912
從我的理解。 當有人單擊日歷事件時,您想打開另一個頁面。
您需要在eventClick內部
/*GENERATE YOUR URL HERE. EVENT object PASSED TO THE EVENT CLICK FUNCTION ALREADY CONTAINS ALL EVENT DATA LIKE ID ...*/
var url = 'page2.php?id='+calEvent.id
var win = window.open(url, '_blank');
win.focus();
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.