当我试图调用这个脚本时,它首先让我选择一个。
然后我可以从8417 - 8422
中选择,就像在where子句中一样
但是,如果我选择8417
,它会向我显示该ID的数据,但会将8418
显示为已选中。
之后,8417
已不再存在于Dropbox中!然后它只从8418
到8422
。
我找不到错误。有没有人有任何提示?
$strSql= "SELECT id FROM tbl_person where id between 8417 and 8422";
$result = mysqli_query($conn,$strSql) or die('Error generating Dropdown: '. mysqli_connect_error());
echo '<form><select size="1" name="ddKfz" class="dropID" onchange="ddChange(this.form)">';
$rs = mysqli_fetch_array($result);
if (empty($rs)) {
echo "<option selected value='0' style='color:#cc0000'>Empty!</option>";
} else {
if ($_REQUEST["ddKfz"]=="" or $_REQUEST["ddKfz"]==0 ) {
echo "<option selected value='0' style='color:#cc0000'>Please pick one:</option>";
mysqli_data_seek($result, 0);
}
while ($rs = mysqli_fetch_array($result)) {
$strOption= "Kfz: " . $rs["id"];
if ($_REQUEST["ddKfz"]==$rs["id"])
echo "<option value='" . $rs["id"] . "'selected style='color:red'>" . $strOption . "</option>";
else
echo "<option value='" . $rs["id"] . "' >" . $strOption . "</option>";
}
}
echo "</select></form>";
mysqli_free_result($result);
Dropdown on Change调用的函数
function ddChange(f) {
f.method="post";
f.action="index.php";
f.submit();
}
答案 0 :(得分:1)
不要在顶部$rs = mysqli_fetch_array($result);
。这已经读出了第一行(8417)。而是使用$result->num_rows
:
echo '<form><select size="1" name="ddKfz" class="dropID" onchange="ddChange(this.form)">';
if($result->num_rows < 1) {
echo "<option selected value='0' style='color:#cc0000'>Empty!</option>";
…
需要考虑几点:
$_REQUEST
,而是使用$_POST
,并清理数据!mysqli_data_seek($result, 0);
- value='" . $rs["id"] . "'selected
selected
之前缺少空格(这可能就是为什么8417不再出现在浏览器中)