2010-05-27 2 views
0

jQuery Ajax 및 PHP에 문제가 있습니다.Jquery Ajax + PHP

mysql 데이터베이스에서 수집하는 데이터를 반향 출력하도록 PHP 파일을 설정했습니다. 데이터베이스가 무언가를 반환하고 함수의 끝에있는 문자열에 실제로 데이터가 포함되어 있는지 확인했습니다.

무슨 일이 일어나고 있는지, ajax 호출 전에 PHP 에코가 발생하여 PHP 데이터가 페이지 상단에 표시되고 적절한 div에는 표시되지 않는 것입니다.

아약스와 PHP 호출의 타이밍과 관련이 있다고 생각하지만 잘 모르겠습니다.

왜 데이터가 .ajax에 걸리지 않고 div에 던져 집니까?

도움 주셔서 감사합니다.

jQuery를

$(document).ready(function() { 

$.ajax({ 
    url: "../database_functions.php", 
    type: "GET", 
    data: "cat=jw&sub=pi&sort=no",  
    cache: false, 
    success: function (html) {     
      alert("Success!"); 
      $('#product-list').html(html);   
     }  
    }); 

}); PHP

echo "Hello World"; 

답변

0

당신은 당신이 포함하거나 페이지에서 필요로 사용하지 않았습니까? 새로운 빈 더미 페이지에서 같은을 시도해보십시오. 또한 div에 두꺼운 빨간색 테두리를 추가하여 페이지의 올바른 위치에 있는지 확인하십시오. 레이아웃에 문제가있을 수 있습니다. 귀하의 코드는 잘못 보이지 않습니다.

+0

데이터베이스 호출을 허용하기 위해 PHP 페이지에서 include를 사용합니까? 그게 사물에 영향을 미칩니 까? –

+0

아, 페이지로드 대신 버튼의 클릭 이벤트에 Ajax 호출을 넣으므로 타이밍인지 확인할 수 있습니다. –

+0

@Kris jQuery를 사용하는 페이지의 include를 의미합니다. –

0

JQuery 코드가 PHP 코드와 동일한 파일에있는 경우 JQuery 코드보다 먼저 실행됩니다. JavaScript는 클라이언트 측, PHP는 서버 측, PHP 파일은 서버에서 먼저 실행되기 때문에 동적 PHP에서 정적 HTML을 렌더링하고 클라이언트 브라우저에서 페이지를 렌더링 할 때보 다 JavaScript가 실행됩니다.

.ajax는 문서 반환 이벤트 준비가 완료 될 때 JavaScript가 실행되기를 원하기 때문에 전체 페이지가로드 될 때 한 번만 실행됩니다.

.ajax가 값을 반환하지 않는 이유 .. 제공 한 코드가 명확하지 않습니다. 실행하려고하는 파일 아약스 호출의 파일 또는 경로에 문제가있을 수 있습니다.