我使用Fullcalendar(javascript)。当您点击该事件时,它会打开一个包含其内容的表单。
eventClick: function(calEvent, jsEvent, view) {
content.val(calEvent.content); //content of event
$('#event').show();
formOpen('edit');
},
我想在你点击事件时打开另一个php页面并在其中显示其数据。现在我想发送"你好"字符串到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;
在浏览器中,我看到当你点击一个事件时,它在PAGE2上用FORM DATA:content:hello执行了POST请求。然后转换到PAGE2和一些没有数据的GET请求。在PAGE2上,我看到错误:未定义索引:内容。
我花了这么多天试图解决这个问题,但还没有找到解决方案。请帮我理解错误的位置。
答案 0 :(得分:1)
似乎您可以使用隐藏的<form method='post' action='page2.php?id=....'
命名内容创建input
,然后在填充隐藏的输入值到内容后调用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>
答案 1 :(得分:0)
因为当您发送ajax请求时,您将通过内容发送。
但是当成功时,你使用location.href重新定位到PAGE2,这会创建一个与之前的ajax调用不同的http请求。
我会通过GET而不是POST传递您的内容值来实现您的目标。
另一种适用于POST请求的方法是在html页面上设置一个隐藏的表单,然后将名称为“content”的输入设置为您的内容。然后调用该表单的提交函数。
有关此方法的示例,请转到此Stack Overflow问题并回答:https://stackoverflow.com/a/26697375/7058912
答案 2 :(得分:0)
据我所知。当有人点击日历活动时,您想要打开另一个页面。
你需要的是在eventClick内部
$cordovaGeolocation
.getCurrentPosition(posOptions)
.then(function(pos) {
map.setCenter(new google.maps.LatLng(49.890224, 20.475327));
var myLocation = new google.maps.Marker({
position: new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude),
map: map,
icon: "img/pos.png",
title: "My Location"
});
}, function(err) {
// error
});
希望这有帮助。