【问题标题】:ajax call to php file which creates temporary tableajax 调用创建临时表的 php 文件
【发布时间】:2023-03-26 06:35:01
【问题描述】:

我有一个带有两个选项的表单,当 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

提前谢谢你!

【问题讨论】:

  • 我们能看到PHP文件吗?另外,我看到你的原始 AJAX 代码中混入了一点 jQuery 吗?

标签: php mysql ajax dom temp-tables


【解决方案1】:

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

在这种情况下,临时表可能不适合您,因为它们不会在 AJAX 调用之间持续存在。

现在,临时表本质上应该是快速高效的,所以如果每次都创建临时表不合适,您可以通过将临时表结果“缓存”到会话变量中来绕过后续请求(如果存在,您将使用它来代替临时表)。

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

【讨论】:

    猜你喜欢
    • 2011-01-19
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多