2013-08-11 3 views
0

나는 정말로 생각할 수있는 가장 신뢰할 수있는 리소스이기 때문에 몇 달 동안 stackoverflow를 사용 해왔다. 그러나 나는 이제 내 자신의 질문을 가지고있다.대규모 jQuery 업데이트 -> My ajax가 더 이상 작동하지 않는다.

일부 PHP/MySQL 상호 작용을 호출 한 후 ajax를 사용하여 HTML5 페이지에서 사용 가능한 코스를 표시하는 스크립트 작업을하고 있습니다. jQuery 1.4.1 (예 ... 알고 있습니다)을 사용하고 흥미로운 새 플러그인을 사용할 수 있으므로 1.10.2로 업데이트되었습니다.

이제 내 페이지에 PHP/SQL 처리 제품이 더 이상 표시되지 않으며 자동 스크롤이 작동하지 않습니다. 일부 검색을 수행했지만 답변을 찾지 못했습니다. 여러분이 코드에서 비 호환 성을 직접 보거나 너무 오래된 구문을 사용하게되기를 바랍니다.

트리거 :

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

스크립트 : 당신이 볼 수 있듯이, 난

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); 
?> 

:

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 코드 (I 실수가 적은 가능성이있는 물건을 삭제) Ajax 및 jQuery 사용법 초보자

UPDATE :

덕분에 이미 도와 준 모든 사람들에게 많이. Chrome에서 디버그 도구를 사용해 보았습니다. php가 수행 할 작업을 정확히 생성합니다. 즉, 내 아약스가 kernel/appel-tableau-ajax.php에있는 PHP 코드를 호출 할 수 있음을 의미합니다. 성공 사례에있는 Console.log()에는 아무 것도 표시되지 않습니다. Chrome에서 감지 한 구문 오류 스크린 샷을 추가하고 있습니다. 누군가가 그 오류를 처리하는 방법을 이해하도록 도와 줄 수 있다면 그것은 훌륭 할 것입니다.

Link to the screenshot

또한, Safari의 디버거는 말한다 : 구문 에러 : JSON 구문 분석 오류 : 예기치 않은 식별자 "개체". 나는이 모든 것이 이전 jQuery 버전에서 작동했다고 믿을 수 없다 ...

고마워, 나는 너무 많이 묻지 않았 으면 좋겠다.

+0

'console.log (array);는'success' 함수에서 무엇을 제공합니까? –

+0

업데이트와 관련이 없기 때문에 이것이 확실하지는 않지만'JSON'을 기대하는 것 같지만'while'도 JSON이 아닐 수있는 "ECHOS"를 많이하고 있습니다. 버그 같아? nicklas가 말하는대로 console.log를 확인하고 요청 및 결과를 확인해야합니다 (예 : 크롬 사용, f12 키 누르기, '네트워크'탭 확인 및 AJAX 요청이 실제로 수행했는지 확인하십시오.) 디버그 시작 – Nanne

+0

안녕하세요 . 답변 해 주셔서 감사합니다. 내 '성공'사건을 'console-log (array)'로 대체하려고했지만 아무 일도 일어나지 않았다. 나는 '성공'사건이 발생하지 않는다고 생각한다. 에코에 관해서는, ob_start()와 ob_get_contents() 함수는 그것을 보이지 않게 만들고 내 배열의 내용에 저장해야합니다. 내 게시물을 편집하여 정밀도를 추가합니다. 너희들 덕분에! – Thorsen31

답변

0

PHP 코드가 json을 반환하는 이유는 무엇입니까? 'ajax'의 'dataType'이 'script'입니까? json으로 변경해보십시오. 희망! :)

+0

그런 빠른 답변을 주셔서 대단히 감사드립니다. 내가 말했듯이, 나는 그 물건에 정말 새롭고, 내가하는 모든 것은 다른 코드에서 꽤 많이 복사되고 지나간 것이다. dataType을 json으로 변경 (JSON 시도)했지만 도움이되지 않습니다.나는 그것을 위해 json에 맡길 것입니다. 다시 한 번 감사드립니다! – Thorsen31

+0

첫 번째 게시물을 업데이트했습니다. 여러분 중 누군가가 한 번해볼 수 있다면 정말 좋을 것입니다! – Thorsen31

관련 문제