0

我已经使用 stackoverflow 几个月了,因为它确实是我能想到的最可靠的资源。但是,我现在有自己的问题。

我正在编写一个脚本,该脚本在调用一些 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”是“脚本”?尝试将其更改为json。希望它会奏效!:)

于 2013-08-11T08:28:06.907 回答