ajax调用php文件创建临时表

时间:2013-12-10 02:09:21

标签: php mysql ajax dom temp-tables

我有一个有两个选项的表单,当onclick AJAX调用一个php文件时,会创建一个包含所有可能结果的临时表。因此,如果用户再次选择其他选项,则加载速度会更快。

问题是对php文件的ajax调用总是会重新创建并插入元素,我该如何避免这种情况?如何创建临时表一次。

是否可以只调用一次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

提前谢谢!

1 个答案:

答案 0 :(得分:0)

  

默认情况下,当数据库连接终止时,MySQL将删除所有临时表。

在这种情况下,也许临时表格不适合你,因为它们在AJAX调用之间会持续存在。

现在,临时表本身应该是快速有效的,所以如果每次创建临时表都不行,那么你可以通过&#34; caching&#34;来绕过它。临时表会产生一个会话变量(如果存在临时表,您将使用它来代替临时表)。

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