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