JSON发送问题

时间:2012-12-19 18:55:12

标签: php wordpress jquery

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

回应它。

最终,我无法回应一个会话,似乎没有任何内容。

如果你可以帮助我,那会很棒,因为我需要这个! :)

1 个答案:

答案 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']; ?>

此时不再有任何想法,请坚持下去。