【问题标题】:Dropdown Box cuts off a value?下拉框截断一个值?
【发布时间】:2014-05-14 13:59:25
【问题描述】:

当我尝试调用此脚本时,它首先显示我选择了一个。
然后我可以从 8417 - 8422 中选择,就像在 where 子句中一样。
但如果我选择 8417,它会显示该 ID 的数据,但会显示 8418 已选中。
之后8417 不再在保管箱中!然后它只会从84188422

我找不到错误。有没有人给点建议?

$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();
}

【问题讨论】:

    标签: javascript php html drop-down-menu mysqli


    【解决方案1】:

    不要在上面做$rs = mysqli_fetch_array($result);。这已经读出了第一行(8417)。而是使用$result-&gt;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"] . "'selectedselected 之前缺少一个空格(这可能是 8417 不再出现在浏览器中的原因)

    【讨论】:

    • 我删除了数据搜索并在选择之前编辑了一个空格。但现在它从一开始只显示 8418 - 8422。 8417 似乎完全消失了。到目前为止,谢谢!
    • 我认为我上面写的可能是问题。
    • 天哪,谢谢!丢失的 8417 现在永久保留。 :-) 那么一般来说使用面向对象的风格而不是程序风格更好吗?
    • 它不是更好,但它可以帮助代码一致性
    猜你喜欢
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    • 2021-10-25
    • 1970-01-01
    相关资源
    最近更新 更多