使用ajax将数据发送到另一个php页面



我使用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();

相关内容

  • 没有找到相关文章

最新更新