2009-09-27 4 views
0

데이터베이스에서 일부 데이터를로드해야하는 웹 페이지가 있습니다. 다음과 같이 그렇게하기 위해, 나는 photoList.php라는 파일을로드 jQuery의 $ .post 기능을 사용하고 있습니다 :jquery의 ajax가 전송되지 않는 데이터

*(photoList.php)* 
<?php 
include 'mysqlConnect.php'; 

$query = mysql_query("SELECT name FROM images"); 
$photoList = Array(); 

while ($row = mysql_fetch_assoc($query)) 
{ 
    $photoList[] = $row['name']; 
} 

echo json_encode($photoList); 
?> 

*(jquery code which **is** being executed)* 
$(document).ready(function(){ 
var photoList; 
var photoCount; 

$.getJSON("photoList.php", {}, processList); 

function processList(data) { 
    photoList = data; 
    photoCount = photoList.length; 
    initialize(); 
} 
}); 
*(this goes on and does some other stuff with initialize()).* 

초기화() 데이터를 통해 그 데이터베이스에서 가져온 이미지 파일 이름은 웹 페이지에 표시되어야합니다. 문제는 : 내 컴퓨터 (apache, windows 컴퓨터)에서 시도 할 때마다 모든 것이 정상적으로 작동하고 이미지가 표시됩니다. 내 웹 호스트 (아파치, 리눅스 컴퓨터)를 업로드 할 때, 그들은, 아무것도 나타나지 않습니다.

이 부분 만이 아닙니다. 나는 JSON에 자바 스크립트 배열을 인코딩 한 다음, 아약스를 통해 php 파일로 보내어 나중에 PHP로 디코딩하고 데이터를 데이터베이스에 업로드하는 비슷한 코드를 추가로 제공합니다. 다시 말하지만 내 컴퓨터에서 작동하지만 업로드 할 때 그렇지 않습니다.

코드가 작동을 멈추는 부분을 확인해 보았습니다. 최소한 마지막에는 배열이 json으로 완벽하게 인코딩되었지만 PHP가 데이터를 가져올 때 어레이가 비어있는 것으로 나타납니다 .

아이디어가 있으십니까? =/

답변

0

당신은 당신의 호스팅 사이트가 당신이 필요로 컴파일 된 PHP 라이브러리를 가지고 있는지 확인하고자 할 수 있습니다.

이 기능을 테스트하는 한 가지 방법은 함수가 GET 매개 변수를 사용하고 브라우저를 통해 테스트 할 수있게하는 것입니다. PHP 페이지에서 오류가 반환되는지 확인하십시오.

제대로 작동하면 Firebug 확장 기능이있는 Firefox를 사용하고 Firebug의 콘솔 탭에서 보내고받은 내용을 확인하십시오.

일단 정보가 더 있으면 여기에서 질문을 업데이트하면 도움이 될 것입니다.

+0

귀하의 도움말을 따라하고 PHP 파일의 응답을 방화범이 끌려서 확인; 내 웹 호스트가 모든 페이지에 광고 및 카운터가 포함 된 임의 코드를 삽입 한 것으로 보이며 이는 json 인코딩을 방해합니다. 나는 그것을 피할 수있는 방법이 있는지 확인하거나 다른 웹 호스트를 찾아야 할 것입니다. 대단히 감사합니다 :) – nagitsu

+0

다행스럽게 생각해 냈습니다. 파이어 버그는 웹 개발을하지 않고서는 상상조차 할 수없는 것입니다. –

0

IE를 사용하는 경우 PHP 링크에서 임의의 해시를 전달하십시오 (예 : 현재 타임 스탬프 + 임의의 5 자리 문자열). Internet Explorer의 경우, 모든 단일 파일에 대해 "너무나 좋아"캐시가 생성됩니다. 문제인지 확인하려면 브라우저에서 직접 php 파일을 열고 F5 키를 누릅니다.

+0

아니요, 오페라, 크롬, 파이어 폭스 및 ie로 시도했지만 아무도 작동하지 않습니다. 아무것도 나타나지 않기 때문에 캐시 문제는 아닙니다. 어쨌든 고마워, 팁 뭔가 다른 사람을 도울 수 있습니다 :) – nagitsu

0

매우 위험한 필터링되지 않은 mysql을 제쳐두고. 귀하의 문제는 PHP 쪽 jQuery 쪽이 아닙니다. 일부 서버 구현에는 POST 및 GET 변수를로드하는 이상한 방법이 있습니다. 귀하의 PHP 스크립트는 단순히 그것에 전송되는 데이터에 액세스 할 수 없습니다. PHP 스크립트가 수신하는 데이터의 전체 에코를 수행하고 Fiddler을 사용하여 보내지는 것을 캡처하십시오.

관련 문제