0

私が考えることができる最も信頼できるリソースであるため、私は何ヶ月もスタックオーバーフローを使用しています。しかし、私は今、私自身の質問があります。

PHP/MySQL インタラクションを呼び出した後、ajax を使用して HTML5 ページに利用可能なコースを表示するスクリプトに取り組んでいます。私はjQuery 1.4.1を使用していました(ええ...知っています)、いくつかの興味深い新しいプラグインが利用可能になったため、1.10.2に更新しました。

現在、ページに PHP/SQL 処理の結果が表示されなくなり、自動スクロールも機能しなくなりました。私はいくつかの検索を行いましたが、答えが見つかりませんでした。私のコードの非互換性、または古すぎる構文の使用を直接見てもらいたいと思っていました。

引き金 :

<a class="internal-link" href="#" onclick="goToByScroll('reanimation');"></a>

脚本 :

function goToByScroll(id){
    $.ajax({
        type: "POST",
        url: "kernel/appel-tableaux-ajax.php",
        dataType: "script",
        data:{type_cours : id},
        success: function(array){ 
                    var objet = JSON.parse(array);
                    var message = objet["message"];
                    var nombre = objet["nombre"];
                    $("#conteneur-tableaux").html(message);
                    $("#nombre-cours").html(nombre);
                    if(nombre==0)
                    {
                        $("#titre-section-tableaux").css("color","darkred");
                    }else{
                        $("#titre-section-tableaux").css("color","darkgreen");
                    }

                $('html,body').animate({scrollTop: $("#section-tableaux").offset().top},'slow');
    
        }
    });
}

PHPコード(間違いの可能性が低いものを消去しました):

ob_start(); // I want to catch all the 'echos' to insert them in an array.

while ($donnees = $reponse->fetch())
{
    
        // Lots of Date comparison stuff and many ECHOS.
    
}

$out = utf8_encode(ob_get_contents()); // --- I put every echos inside the 'OUT' variable.
ob_end_clean();
// --- I want to send back 2 things to my script, some infos about the courses available, and the total number of available courses. So I create an array.
$output_final = array ("message" => $out, "nombre" => $compteur_cours);
echo json_encode($output_final);
?>

ご覧のとおり、私は Ajax と jQuery の使い方の初心者です。

アップデート :

すでに助けてくれたすべての人に感謝します。Chrome でデバッグ ツールを試してみたところ、php は本来の動作を正確に生成します。これは、私の ajax が kernel/appel-tableau-ajax.php に配置された PHP コードを呼び出すことができることを意味します。成功ケースに配置された Console.log() には何も表示されません。Chrome が検出した構文エラーのスクリーンショットを追加しています。誰かがこれらのエラーを処理する方法を理解するのを手伝ってくれたら、それは素晴らしいことです.

スクリーンショットへのリンク

また、Safari のデバッガーは、SyntaxError: JSON Parse error: Unexpected identifier "object" と表示します。これがすべて古いバージョンの jQuery で機能したとは信じられません...

どうもありがとう、私はあまりにも多くを求めていないことを願っています!

4

1 に答える 1

0

PHP コードが json を返す場合、なぜ ajax の「dataType」が「script」なのですか? json に変更してみてください。それがうまくいくことを願っています!:)

于 2013-08-11T08:28:06.907 に答える