1

画像がクリックされるとセッションを作成するために、WordPress の別のページに JSON で値を送信しようとしています。

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 に答える