我对select选项使用Ajax调用,当我更改select选项时会加载该选项。我想在加载页面时加载第一个选项而不选择。我正在使用W3schools实现这一目标(https://www.w3schools.com/php/php_ajax_database.asp)。
我的(W3学校)工作代码:
function showUser(str) {
if (str=="") {
document.getElementById("txtHint").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 (this.readyState==4 && this.status==200) {
document.getElementById("txtHint").innerHTML=this.responseText;
}
}
xmlhttp.open("GET","getuser.php?q="+str,true);
xmlhttp.send();
}
<select id="gang" class="form-control" name="users" onchange="showUser(this.value)" style="height: auto;">
<?php
$sql = "SELECT DISTINCT id, datum FROM analyse ORDER BY date DESC";
$result = mysqli_query($conn, $sql) or die ("Connection failed: " . $conn->connect_error);
while ($row = mysqli_fetch_assoc($result)) {
$id = $row['id'];
?>
<option value="<?= $id; ?>"><?= $id; ?></option>
<?php } ?>
</select>
修复是在主体上加载并在选项字段中添加一个id:
<body onload="showUser(document.getElementById('analyse').value)">
<option id="analyse" value="<?= $id; ?>"><?= $id; ?></option>
在您的代码中,添加以下代码:
<body onload="setTimeOut(showUser(document.getElementById('gang').value),1000)">
这将使用您选择的第一个选定值调用您的函数。