0

WordPress に基づいてサイトを再設計していますが、その過程で PHP/jQuery をインポートする必要があります。元のページでは問題なく機能しますが、新しいページでは機能しないことがわかりました。

JSON ダンプの結果は次のとおりです。

  • 古い- データがないため本来は空です
  • 新規- インポートに $_POST['club'] を使用したくない

両方のインスタンスのコードは次のとおりです。

<script type="text/javascript">
    $(document).ready(function() {
        $.ajax({
            type: "post",
            url: "eventinfo.php",
            data:  $('#club').serialize(),
            success: function(data) {
                $('#right_inside').html('<h2>' + $('#club').val() + '<span style="font-size: 14px"> (' + data[0].day + ')</h2><p>Entry: ' + data[0].entry + '</p><p>Queue jump: ' + data[0].queuejump + '</p><p>Guestlist closes at ' + data[0].closing + '</p>');
                },
            dataType: "json"
        });
    });

    $('#club').change(function(event) {
        $.ajax({
            type: "post",
            url: "eventinfo.php",
            data:  $(this).serialize(),
            success: function(data) {
                $('#right_inside').hide().html('<h2>' + $('#club').val() + '<span style="font-size: 14px"> (' + data[0].day + ')</h2><p>Entry: ' + data[0].entry + '</p><p>Queue jump: ' + data[0].queuejump + '</p><p>Guestlist closes at ' + data[0].closing + '</p>').fadeIn('500');
                },
            dataType: "json"
        });

    });
</script>

そして、私のeventinfo.phpは次のとおりです。

<?php

header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');

include('guestvibe_functions.php');
connect();


$night = $_POST['club'];
$night = mysql_real_escape_string($night);

$query = "SELECT * FROM nights WHERE name = '" .$night. "'";

    $result = mysql_query($query);
    $items = array();

    if($result && mysql_num_rows($result) > 0) { 
        while ($row = mysql_fetch_array($result)) { 
        $items[] = array("entry"=>$row['entry'], "day"=>getLongDateString($row['day']), "queuejump"=>$row['queue jump'], "closing"=>$row['closing']);
        }
    } 

    mysql_close(); 
    // convert into JSON format and print

    echo json_encode($items);
?>

遅くなったので、これでうまく説明できたことを願っています。何が問題なのですか?

編集

両方が同じサーバー/ホスティングプランにあることを付け加えておきます. 新しいものは 1 つ上のディレクトリです。

4

2 に答える 2

0

手がかりについては、この回答を参照してください

おそらく、新しいバージョンの PHP を使用しているか、新しい PHP サーバーで別のサーバー設定を使用していると思います。

于 2012-08-22T23:00:34.210 に答える
0

2つの可能性が見えます。

1 つ目は、新しいサイトでは、古いサイトでは club= 変数が AJAX によって設定されていないことです。次に、serialize() に「club」という変数が含まれていない理由を発見する必要があります。

2 つ目は、古いサイトでも club= 変数が入力されているとは限らず、通知の警告を受け取らなかったことです。

この場合、コードを次のように変更します。

$night = $_POST['club'];

$night = isset($_POST['club']) ? $_POST['club'] : '';

問題を解決する必要があります。

アップデート

サイトを確認しましたが、eventinfo受け取った URL が引用されたものとは異なります。私のFirefoxが得たものは次のとおりです。

 http://www.guestvibe.com/wordpress/eventinfo.php

...404 エラーが発生します。

于 2012-08-22T23:04:48.017 に答える