2014-10-10 131 views
-1

我想通过jQuery在php页面之间传递变量。在页面之间传递jQuery参数

我的代码:我用这对fullcalendar.js API:

第一页:EventMain.php

select: function (start, end) { 

    $.ajax({ 
     url: '/dev/Event/Event.php', 
     type: 'POST', 
     data: {name: 'John'} 
    }); 

    PopupCenter(url,'Event', 1000, 450) 
} 

在随后弹出的第二个页面打开:Event.php。我需要名称变量

var Name = <? php echo $_POST['name']; ?>; 

alert(Name); 

警报是空白..我不明白为什么?

我知道我可以在URL发送变量作为参数,然后在Event.php使用getUrlParameter得到变量:

function getUrlParameter(sParam){ 
    var sPageURL = window.location.search.substring(1); 
    var sURLVariables = sPageURL.split('&'); 
    for (var i = 0; i < sURLVariables.length; i++) 
    { 
     var sParameterName = sURLVariables[i].split('='); 
     if (sParameterName[0] == sParam) 
     { 
      return sParameterName[1]; 
     } 
    } 
} 

但我不希望发送该URL的变量。有没有其他方式发送变量?

+0

警报如何通过ajax请求显示? – 2014-10-10 10:42:58

+0

对于初学者,您的姓名=部分应引用'';否则你会得到一个JS错误。使用萤火虫NET面板来查看你回复的回应。我怀疑你能够在ajax调用上触发警报,并且我期望AJAX调用可以执行更新 - 然后你可以在PHP中输出并在NET面板中查看它。 – Ukuser32 2014-10-10 10:43:32

+0

警报未通过ajax请求显示。我通过ajax将EventMain.php中的变量发送给Event.php,然后a应该能够在Event.php的php $ _POST中读取它。但它不起作用。你们认为这与异步有关吗? – user3163404 2014-10-10 10:44:46

回答

1

您不能在另一个会话中访问POST变量。

您打开的弹出窗口是对没有数据的页面的新请求。

没有合理的解决方案,你试图实现。

+0

那么有没有其他的jQuery中的页面之间传递变量而不是url作为参数? – user3163404 2014-10-10 10:48:02

+0

如果您不想将变量传递给PHP以用于以后的请求,请保存发布到会话的数据。您不能以异步方式访问数据。 – Repox 2014-10-10 10:49:43

1

传球EventMain.php的变量Event.php

$.ajax({ 
     type: 'post', 
     url : '/dev/Event/Event.php', 
     data: { name : 'John'}, 
     success: function(response) { // return content from Event.php (result) page 
       // Do your operation with result 
      } 
    }); 

在Event.php

<?php 
$name = $_POST['name']; 
// Perform your actions with $name and return result as 
echo $yourresult; 
exit; 
?> 
+0

这不回答关于*为什么*这个尝试不起作用的问题。 – Repox 2014-10-10 10:47:28

+0

问题是我需要在Event.php上使用jquery中的变量。 – user3163404 2014-10-10 10:49:06

0

试试这个方法...

eventMain.php

$.post('/dev/Event/Event.php',{'name':'John'}, function(data){ 
    // do something with response 
}); 

Event.php

<?php 
    $name = $_POST['name']; 
?> 

<script> 
    console.log('<?= $name; ?>'); 
</script> 
+0

这有效。但是我仍然无法在Event.php的jQuery中访问$ name。 – user3163404 2014-10-10 10:53:18

+0

你可以在'javascript' ..或('jQuery',如果你在'Event.php'中使用它)看到更新的答案 – 2014-10-10 10:58:25

+0

它不起作用。问题是我知道它应该.. – user3163404 2014-10-10 11:07:25

0

我认为在第二页值分配给变量name当你忘了""

第一页:

<!-- you don't forget this tag to see the result //--> 
<div id="content"></div> 

$.ajax({ 
    url: 'page.php', 
    type: 'POST', 
    data: {name: 'John'}, 
    success: function (data) { 
     $('#content').html(data); 
    } 
}); 

第二页(event.php):

<script type="text/javascript"> 
    var name = "<?php echo $_POST['name']; ?>"; 
    alert(name); 
</script> 

我前面的代码工作,我测试过它。