Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从远程PC检索大量数据作为数据列表_Javascript_Php_Mysql_Html - Fatal编程技术网

Javascript 从远程PC检索大量数据作为数据列表

Javascript 从远程PC检索大量数据作为数据列表,javascript,php,mysql,html,Javascript,Php,Mysql,Html,我有一个简单的HTML页面,允许用户选择输入信息的字段数量。一旦用户选择了一个数字,就会调用一个Javascript onchange方法,该方法将参数发送到一个PHP页面,在该页面中从数据库检索数据并存储在一个datalist中,该datalist将动态附加到HTML页面 当我在主机PC上访问此功能时,一切都正常工作。但是,当我从远程客户机访问时,输入字段不会自动生成 代码如下: <html> <head> <script>

我有一个简单的HTML页面,允许用户选择输入信息的字段数量。一旦用户选择了一个数字,就会调用一个Javascript onchange方法,该方法将参数发送到一个PHP页面,在该页面中从数据库检索数据并存储在一个datalist中,该datalist将动态附加到HTML页面

当我在主机PC上访问此功能时,一切都正常工作。但是,当我从远程客户机访问时,输入字段不会自动生成

代码如下:

<html>
    <head>
        <script>
            function GetInfo(str) {
                if (str == "") {
                    document.getElementById("items").innerHTML = "";
                    return;
                } else {
                    if (window.XMLHttpRequest) {
                        xmlhttp = new XMLHttpRequest();
                    } else {
                        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    xmlhttp.onreadystatechange = function() {
                        if (this.readyState == 4 && this.status == 200) {
                            document.getElementById("items").innerHTML = this.responseText;
                        }
                    };
                    xmlhttp.open("GET","../php/Return-List.php?q="+str,true);
                    xmlhttp.send();
                }
            }
        </script>
    </head>
    <body>
        <form method="POST" action="../php/Submit.php">
            <label>Number of Items</label>
            <input type="number" name="numberofitems" onchange='GetInfo(this.value)'>
            <br/>
            <div id="items"></div>
            <input type="submit" value="Go"  />
        </form>
    </body>
</html>

函数GetInfo(str){
如果(str==“”){
document.getElementById(“项目”).innerHTML=“”;
返回;
}否则{
if(window.XMLHttpRequest){
xmlhttp=新的XMLHttpRequest();
}否则{
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
document.getElementById(“items”).innerHTML=this.responseText;
}
};
open(“GET”,”./php/Return List.php?q=“+str,true);
xmlhttp.send();
}
}
项目数

PHP:


我尝试在JavaScript中使用相对位置和固定位置,并将结果限制在500。限制数据库结果是可行的,值得注意的是,该表返回的结果超过170 000个。这似乎是这里的问题

如何检索整个数据集?有没有一种方法可以更有效地做到这一点,即无延迟地打包所有数据


提前感谢。

效率是非常主观的。没有一刀切的答案。但我怀疑你是否真的打算立即显示所有17万个结果?如果没有其他内容,您可能希望将结果分成更小的块,并让javascript循环请求更小的块。这样,结果就可以在用户到达时显示给用户,而不是等待所有结果。我认为,最佳情况是,一次显示50个结果就足够了。不过,我对JavaScript还不熟悉,不确定我将如何进行这项工作。你能帮帮我吗?@PhilipCouling请帮帮我,或者给我指一下该往哪里看的方向?我真的需要你的帮助
<?php
    include("connection.php");
    if($conn->connect_error) {
        die("Connection Failed");
    } else {
        $items = $_GET['q'];
        $fields = "";
        $query = mysqli_query($conn,"SELECT name, desc FROM ItemTB");
        for($i=1; $i<=$items ; $i++) {
            $fields .= "<label>Input</label>
                        <input list='items' name='items[]' />
                        <datalist id='items'>";

            while($row = mysqli_fetch_array($query)) {
                $fields .= "<option value='" . $row['name'] . " | " . $row['desc'] . "'> " . $row['desc'] . "</option>";
            }

            $fields .= "</datalist>"; 
        }
        echo $fields;
    }
?>