1

嘿伙计们,所以我试图让一个 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']; ?>

呼应出来。

最终,我无法回显会话,并且似乎没有做任何事情。

如果你能帮助我,那就太棒了,因为我需要完成这个!:)

4

1 回答 1

0

您需要澄清程序流程。什么时候加载什么?

“我正在尝试通过一个值发送 JSON”。JSON 是一种数据格式,而不是一种方法。JSON不能发送任何东西,它可以发送。

如果您调试 JavaScript(使用 Chrome 开发者工具或 Firefox 中的 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']; ?>

暂时没有更多的想法,坚持下去。

于 2012-12-19T21:15:08.993 回答