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

时间:2016-10-24 04:32:37

标签: javascript ajax fullcalendar

我使用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上,我看到错误:未定义索引:内容。

我花了这么多天试图解决这个问题,但还没有找到解决方案。请帮我理解错误的位置。

3 个答案:

答案 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
      }); 

希望这有帮助。