嘿伙计们,所以我试图将一个值的JSON发送到wordpress中的另一个页面,以便在单击图像后创建会话。
这是JSON代码:
$('.item-post a').click(function() {
var prodname = $('#hiddenpostitle');
$.post('/overviewcheck-515adfzx8522',
{
'ProdName': prodname.val()
},
function(response) {
},
'json'
);
});
#hiddenposttitle如下:<?php echo "<input type='hidden' value='$title' id='hiddenpostitle' name='hiddenpostitle'/> "?>
所以这会发送到overviewcheck页面,然后该页面有一个模板,其中包含以下内容:
<?php
/*
Template Name: overviewbackcheck
*/
session_start();
$prodname= $_POST['ProdName'];
$_SESSION['overviewprod'] = $prodname;
?>
有人提到有关wordpress销毁会话的事情来自调用session_start(),但这不是问题,因为我在一段时间之前解决了这个问题,并让其他会话成为可行的。它必须与JSOn发送过来做一些事情,我不确定。
从此处打开概述页面,其中包含以下内容:
$(function()
{
$('.item-post a').colorbox({opacity:0.3, href:"../overviewa512454dzdtfa"});
});
这是将在我拥有的文件中打开文件的颜色框代码:
<?php echo $_SESSION['overviewprod']; ?>
回应它。
最终,我无法回应一个会话,似乎没有任何内容。
如果你可以帮助我,那会很棒,因为我需要这个! :)
答案 0 :(得分:0)
您需要澄清程序流程。是什么时候加载什么?
“我正在尝试通过值发送JSON”。 JSON是一种数据格式,而不是一种方法。 JSON无法发送任何内容,可以发送。
如果您调试JavaScript(在Firefox中使用Chrome开发人员工具或Firebug),您的onclick功能中是否有产品名称?
$('.item-post a').click(function() {
var prodname = $('#hiddenpostitle');
alert(prodname.val());
(您可以检查网络流量,或在“var prodname ...”行设置断点,只需在prodname上添加一个监视,将其悬停等,以查看您是否拥有正确的产品名称)
接下来,从AJAX请求中查看服务器端的内容。
<?php
/* Template Name: overviewbackcheck */
session_start();
var_dump($_POST);die; // You can see what is dumped here in the Network tab in the browser's Developer tool.
如果您不知道如何使用浏览器调试工具,您可以随时保存到错误日志中并将其读取。
<?php
error_log(print_r($_POST, true));
最后,当您从“../overviewa512454dzdtfa”获取代码时,该脚本是否执行session_start();在你这样做之前?
<?php echo $_SESSION['overviewprod']; ?>
与
相比<?php session_start(); echo $_SESSION['overviewprod']; ?>
此时不再有任何想法,请坚持下去。