我使用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']?>';
},
});
},
所以PAGE2 $content = $_POST['content'];
echo $content;
在浏览器中,我看到,当你点击一个事件,它执行POST请求PAGE2与FORM DATA: content:hello。然后是到PAGE2的转换和一些没有数据的GET请求。在PAGE2上,我看到错误:Undefined index: content.
我花了很多天试图解决这个问题,但还没有找到解决办法。请帮助我了解错误在哪里。似乎你可以创建一个<form method='post' action='page2.php?id=....'
与一个隐藏的input
命名为content,然后在你的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请求时,您将通过内容发送。
但是当这是成功的,你重新定位到PAGE2使用位置。
创建一个不同于之前ajax调用的HTTP请求。我会通过GET而不是POST传递您的内容值来实现您的目标。
另一个方法,将工作的POST请求是通过在你的html页面上有一个隐藏的形式,你设置一个输入名称'content'作为你的内容。然后调用该表单的submit函数。
有关此方法的示例,请访问此堆栈溢出问题和答案:https://stackoverflow.com/a/26697375/7058912
根据我的理解。当有人单击日历事件时,您希望打开另一个页面。
你需要的是inside 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();