2014-10-05 2 views
0

onclick을 실행 한 ajax 호출이 있습니다.이 함수는 여전히 세부 사항의 이전 버전을 출력하고 있다는 점을 제외하고는 모두 잘 작동하고 원하는 결과를 제공합니다.이전 버전의 스크립트를 반환하는 AJAX 호출

HTML :

<div id="productList"> 
    <h3>Product List</h3><hr /> 
    <table width='100%'> 
     <tr> 
      <th>Product</th> 
      <th>Price</th> 
     </tr> 

     <?php 
      $q1 = "select * from products"; 
      $r1 = mysqli_query($cxn,$q1) or die ('Error Q1'); 

      while ($row1=mysqli_fetch_assoc($r1)) { 
       echo "<tr id='$row1[pCode]' onclick=\"getDetails($row1[pCode]);\" > 
       <td>$row1[Description]</td> 
       <td>$row1[SalePrice]</td> 
       </tr>"; 
      } 
     ?> 

    </table> 
</div> 

<div id="productDetails"> 
    <h3>Product Details</h3><hr /> 
    <div id="specifics"></div> 
</div> 

JS :

<script type="text/javascript"> 
    function getDetails(pCode){ 

     var page = "includes/details.php?pCode=" + pCode +"&success=yes"; 
     var xReq = new XMLHttpRequest(); 
     xReq.open("GET",page,false); 
     xReq.send(null); 
     var serverResponse = xReq.responseText; 
     document.getElementById("specifics").innerHTML=serverResponse; 
    } 

</script> 

는 PHP는 단순히 URL로 전달 된 PCODE 값을 기준으로 데이터베이스를 조회하고 정보와 출력을 검색하지만, 이전에 되 돌리는 것 존재하지 않는 파일의 버전 !!

+0

통화 결과가 어딘가에 캐시 된 것처럼 들립니다. 어쩌면 중간 서버 (아파치?)에 아마 브라우저 캐시에 – toniedzwiedz

+0

아파치에서 개발하고 있지만, 같은 일이 일어날지라도 - 좌절! –

답변

1

결과가 캐시 된 것 같습니다. 다른 사용자의 브라우저 캐시를 제어 할 수 없기 때문에 해결 방법은 임의의 숫자를 사용하여 페이지를 쿼리하는 것입니다. 이 같은 것 :

var page = "includes/details.php?pCode=" + pCode +"&success=yes&random=" + Math.random(); 

따라서 결과는 캐시되지 않으며 항상 최신 버전을 얻습니다.

+0

그 일을 한 것 같아서 대단히 감사합니다 –

+0

여기에 덧붙여서 고쳐 드리겠습니다. :) – paqogomez

관련 문제