簡體   English   中英

在中選擇特定行 <select> SQL查詢返回后的列表

[英]Select specific row in <select> list after return from SQL query

我要解決這個棘手的問題,在創建新員工記錄時,我使用以下內容顯示了具有ID號的命名商店列表,以便從下拉列表中進行選擇。 在這一點上,這很好。 一段javascript會從用戶選擇中拆分顯示的文本,並發送帶有新員工詳細信息的商店ID號,以將其插入數據庫中的employee表中。 我正在使用一個隱藏的shopID文本框來存儲數字,如javascript中所示。

這是代碼PHP首先是javascript:

$result = mysqli_query($link,"SELECT shopID, shopName FROM SHOP");
            echo "<br><select class='formInput' name='listbox' id='listbox' onchange='captureShopID()' tabindex=9>";
            #Use onchange instead of onclick where Keyboard is used. onclick does not register changes fro keyboard
            while($row = mysqli_fetch_array($result))
            {
                $shopID = $row['shopID'];
                $shopName = $row['shopName'];
                $allText = "$shopID, $shopName";
                echo "<option value='$allText'>S00$shopID  $shopName</option>";
            }
            echo "</select>";

AND(包括此內容,因為它可能包含解決我的問題的提示)

<script>
function captureShopID()
{
  var sel = document.getElementById("listbox");
  var result;
  result = sel.options[sel.selectedIndex].value;
  var shopNumber = result.split(',');
  document.getElementById("shopID").value = shopNumber[0];
}
</script>

好。 到目前為止一切都很好。 我想做的是使用相同的設置修改相同的記錄。 因此,更新布局類似於用於創建記錄的布局。 我再次有了list元素,但我想讓它顯示員工在其工作的商店,否則會令人困惑,因為該列表默認為列表中的第一項,在大多數情況下不是該員工在工作的實際商店在。

因此,代替:

S001倫敦

也許應該是:

S003巴黎…員工在哪里工作。

我已經嘗試過各種方法,但這是一個棘手的問題。 $ shopID和$ shopName存在選項值串聯的事實可能會使我尋求解決方案的事情變得有些復雜。

PHP和javascript的新知識(JavaScript相當神秘)和整個編程。 學習速度很快,但會遭受許多天的腦細胞超負荷。

任何朝着正確方向的指針表示贊賞。

我的解決方案…經過開箱即用的思考,在項目的其他方面進行了研究。

<?php
            include "../db.php";

            $result = mysqli_query($link,"SELECT shopID, shopName FROM SHOP");
            echo "<br><select class='formInput' name='listbox' id='listbox' onchange='captureShopID()' tabindex=9>";
            #Use onchange instead of onclick where Keyboard is used. onclick does not register changes from keyboard
            echo '<option>Works at:'.$shopName.'</option>';
            while($row = mysqli_fetch_array($result))
            {
                $shopID = $row['shopID'];
                $shopName = $row['shopName'];
                $allText = "$shopID, $shopName";
                echo "<option value='$allText'>S00$shopID  $shopName</option>";
            }
            echo "</select>";
        ?>

通過在循環之外的列表頂部添加多余的內容作為列出的默認項,我實現了所需的功能:

回顯'Works at:'。$ shopName。'';

結果是顯示更新的員工記錄,這樣您從菜單中看到的商店就是您在菜單中看到的,如下所示:

在倫敦南華克工作

並彈出列表以顯示其他商店選項

在倫敦南華克工作
S001巴黎市中心分布
S002巴黎蒙馬特
S003倫敦南華克
S004羅馬Trastevere

等等。

不完全是我最初的意圖,但同樣出色

我的目標是提供一個干凈而簡潔的界面,且沒有太多標簽,並且此解決方案使list元素易於說明。

如果有人對主題名稱有很好的建議,請發貼,因為這很有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM