2013-12-10 25 views
0

我有一個表單有兩個選項,當onclick AJAX調用一個php文件時創建一個包含所有可能結果的臨時表。所以如果用戶再次選擇另一個選項,它會加載得更快。ajax調用php文件創建臨時表

問題是ajax調用php文件時總是會重新創建並插入元素,我該如何避免這種情況?我怎樣才能創建臨時表一次。

是否可以只調用一次php文件?

對不起,我表達不好,但我還挺新,以PHP,AJAX等

我的Ajax調用:

<script type="text/javascript"> 
     function showAliveData(str,str2){ 
      if (str=="null" || str2=="null") 
       { 
       document.getElementById("resultados").innerHTML=""; 
       return; 
       } 
      if (window.XMLHttpRequest) 
       {// code for IE7+, Firefox, Chrome, Opera, Safari 
       xmlhttp=new XMLHttpRequest(); 
       } 
      else 
       {// code for IE6, IE5 
       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
       } 
      xmlhttp.onreadystatechange=function() 
       { 
       if (xmlhttp.readyState==4 && xmlhttp.status==200) 
       { 
       document.getElementById("resultados").innerHTML=xmlhttp.responseText; 
       $("#tablaResultados").tablesorter("update"); 
       } 
       } 
      document.getElementById("resultados").innerHTML='<div id="loader">La conexión con Google Analytics puede tardar unos segundos, por favor espere..</div>'; 
      xmlhttp.open("GET","test.php?seccion="+str+"&elemento="+str2,true); 
      xmlhttp.send(); 
     } 
    </script> 

HTML:

<form name="form"> 
      <select name="seccion"> 
       <option value="null" style="color:#D3D3D3" disabled="disabled" selected="selected">Sección</option> 
        <option value="Home">Home</option><br/> 
        <option value="Promociones">Promociones</option> 
         <option value="all">- Todas las secciones -</option>      
      </select> 
      <select name="elemento"> 
       <option value="null" style="color:#D3D3D3" disabled="disabled" selected="selected">Elemento</option>         
        <option value="Vitrina">Vitrina</option><br/> 
        <option value="Banner">Banner</option> 
        <option value="Destinos destacados">Destinos destacados</option> 
        <option value="Box">Box</option> 
        <option value="all">- Todos los elementos -</option>      
      </select> 

      <input type="button" value="Alive" onclick="showAliveData(seccion.value,elemento.value)"> 

的PHP文件:

Basically 
-Creates the temporary table 
-Inserts all data 
-display the data the user selected 

謝謝y ou提前!

+0

我們可以看到PHP文件?另外,我看到的混合到你的原始AJAX代碼的一點jQuery? – Zarathuztra

回答

0

默認情況下,當數據庫連接終止時,MySQL刪除所有臨時表。

也許臨時表是不是你在這種情況下,他們將 AJAX調用之間持續存在。

現在,臨時表本質上應該是快速有效的,所以如果每次都創建臨時表並不好,那麼可以通過將臨時表結果「緩存」到會話變量中來避免後續請求(如果存在的話,你可以使用它來代替臨時表)。

參考http://www.tutorialspoint.com/mysql/mysql-temporary-tables.htm