2012-06-01 2 views
0

빈 html 테이블에 대한 링크를 추가하고 싶습니다. 0.2 초 이내에 Firefox와 Chrome에서 작동하지만 IE9에서는 작동하지 않습니다. 최소 3 분이 소요됩니다. 그 이유는 전달 된 데이터가 완전히 다른 것입니다. 세 브라우저 모두에서 같은 쿼리를 만들었습니다. 여기 내 코드입니다 :jquery 테이블에 html 요소를 추가하십시오.

function submitForm(dataString) 
{ 

    jQuery.ajax({ 
     type: 'POST', 
     cache: false, 
     dataType: 'text', 
     url: 'retrieveFileList.php', 
     data: {'data':dataString}, 
     success: function(data){ 
      jQuery('#tresults').append(data); 
     } 
    }); 

    return false; 
} 

반환 된 데이터는 PHP 파일에서는 다음과 같습니다

while($row = mysql_fetch_array($result)) 
{ 

$linktextpos = strrpos($row[0],"/",0); 
$linktext = substr($row[0],$linktextpos); 

echo "<tr>"; 
echo "<td>"; 
echo "</td>"; 
echo "<td>"; 
echo "<a color='#ffffff' href=\"" . $row[0] . "\"><font color=\"#ffffff\">" . "..." . $linktext . "</font></a>"; 
echo "</td>"; 
echo "</tr>"; 

} 
+0

당신의'무엇을 포함 data'입니까? – thecodeparadox

답변

0

확인. 문제를 찾았습니다. HTML 파일의 헤더가 잘못되었습니다.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

MSIE 브라우저는이 (어떤 공인 ID)를 인식하지 않고 쿼크 모드로 렌더링하기 때문에 document.getElementById를() ... 작업 및 SQL되지 않은 잘못된 매개 변수를 넘겨 받았습니다하지 않습니다. 푸우.

이 말을해야 :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/HTML4/loose.dtd"> 
0

얼마나 많은 행이 당신의 PHP를 반환합니까? 이 테스트하지 않은,하지만 IE9 테이블에 많은 행을 삽입하는 방법에 대해 영리한 것 같아요. 이런 식으로 삽입하십시오 :

jQuery('#tresults').append($(data)); 

을 그 문제가 해결되지 않으면 <tbody></tbody>에서 PHP 출력을 포장하려고합니다.

.

+0

둘 다 시도했지만 IE9에서 반환되는 데이터가 다릅니다. 예를 들어 FF와 Chrome에는 10 개의 특정 행이 있고 IE9에는 100 개의 다른 행이 있습니다. SQL 쿼리는 동일합니다. 나는 이것을 정말로 이해하지 못한다. –

+0

서버 측 코드가 특별히 사용자 에이전트를 확인하고 그에 따라 다른 출력을 반환하지 않는 한, 한 브라우저가 다른 브라우저와 다른 결과를 얻을 수있는 방법이 없습니다. IE9에서 dataString이 동일한 지 확인하십시오. 특수 문자를 인코딩하는 경우 오류가 발생할 수 있습니다. –

+0

서버에서 사용자 에이전트를 확인하지 않습니다. 반환 된 데이터는 IE9에서 다릅니다. 나는 그것이 안된다는 것을 안다. 링크가 동일하지 않습니다. 나는 다른 링크를 얻는다. 이상한. –

관련 문제