1

Web サイトの通知テーマを購入しました。Web サイトからデータを取得して、ログインしているユーザーに通知しようとしています。

AJAX/jQuery/Javascript:

<script type="text/javascript">
var refreshId = setInterval(function(){
    $.ajax({
        type: "POST",
        url: "cron/notify.php",
        cache: false,
        success: function(data){
            $.smallBox( 
        {
            var id = data[5],
            title: "New Ticket",
            content: "A new ticket has been created. Ticket ID: <strong>" +id+"</strong><p><h6>This will close in 4 Seconds.</h6>",
            color: "#000",
            timeout: 4000
        });
    }
    setInterval(get_new, 1000);
</script>

PHP

<?php
    mysql_connect(REDACTED FOR SECURITY) or die(mysql_error());
    mysql_select_db(REDACTED FOR SECURITY) or die(mysql_error());
    $query = mysql_query("SELECT * FROM tickets WHERE DATE_ADD(submitDate, INTERVAL 1 MINUTE) < CURTIME()  AND currentStatus='Open'");
    $array = mysql_fetch_row($result);

    echo json_encode($array);
    ?>

問題やエラーは発生していません。

アップデート:

<script type="text/javascript">
var refreshId = setInterval(function() {
    $.ajax({
        type: "POST",
        url: "cron/notify.php",
        cache: false,
        success: function(data){
            $("#botSimple1").click(function(){
            $.smallBox( 
        {
            title: "New Ticket",
            content: "A new ticket has been created. Ticket ID: <strong>" +data[5]+"</strong><p><h6>This will close in 4 Seconds.</h6>",
            color: "#000",
            timeout: 4000
        });
            });
        }
    });
});

</script>

これは新しいスクリプトで、JavaScript によるエラーはありませんが、通知ボックスは実際にはボタンです。それらは変更できますか?

4

1 に答える 1

0

AJAX のデバッグは面倒な場合があります。パーツがどのように組み合わされるかを明確に理解する必要があります。

  1. $.ajax を使用して、ajax リクエストをサーバーに送信します
  2. サーバー上の cron/notify.php はいくつかのデータを生成し、それを送り返します
  3. 「成功」のために定義した関数がデータで呼び出されます
  4. smallBox を呼び出してデータを表示します -

そのため、何か問題が発生している可能性のある場所がいくつかあります

  • ブラウザの開発者ツール / firebug: リクエストが実際に送信されているかどうかを「ネットワーク」タブで確認してください
  • ブラウザで: バックエンドの URL (この場合は「cron/notify.php」) を直接開いてみてください。期待するデータが表示されますか?
  • あなたのJavaScriptコードで:あなたはJavaScriptで「成功」を処理しているだけです。エラー用の関数を追加してみてください
  • ブラウザのコンソールで: $.smallBox( ) を開始してみてください - 実際に何かが表示されますか?
  • JavaScriptコードで:データをsmallBoxに送信する前に:console.log(data)を使用してコンソールにダンプし、期待値があるかどうかを確認します

firebug を使用して AJAX をデバッグする方法のチュートリアルについては、http: //www.drdobbs.com/article/print?articleId=196802787&siteSectionName=tools を参照してください。

于 2013-04-27T07:33:29.727 に答える