从SQL查询</select>返回后,在<select>列表中选择特定行

时间:2014-03-29 15:00:30

标签: javascript php sql

我有一个相当棘手的问题需要解决,我在创建新员工记录时使用以下内容显示一个带有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>

行。到目前为止一切都很好。我想要做的是使用相同的设置修改同一记录。因此更新布局类似于创建记录的布局。我再次列出了列表元素,但我想要的是让它显示员工工作的商店,否则会让人感到困惑,因为列表默认为列表中的第一项,大多数情况下不是员工工作的实际商店英寸

所以,而不是:

S001伦敦

也许应该是:

S003巴黎......员工在哪里工作。

我尝试了各种各样的东西,但这是一个棘手的问题。 $ shopID和$ shopName的选项值连接这一事实可能会使我在寻求解决方案时遇到一些麻烦。

非常新的PHP和javascript(javascript非常神秘)和编程作为一个整体。快速学习,但遭受脑细胞过载多天。

任何指向正确方向的人都会赞赏。

1 个答案:

答案 0 :(得分:0)

我的解决方案......在我的项目的其他一些方面进行了一些开箱即用的思考之后。

<?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>";
        ?>

通过将额外添加到循环外部列表顶部以充当列出的默认项目,我实现了我想要的目标:

echo&#39;适用于:&#39;。$ shopName。&#39;&#39;;

这样可以显示更新员工记录,以便他们的记录中的商店就像您在菜单中看到的那样:

作品:伦敦南华克

弹出列表以显示其他商店选项

作品:London Southwark
S001 DISTRIBUTION CENTRAL Paris
S002 Paris Montmartre
S003伦敦南华克 S004 Roma Trastevere

等等。

不完全是我最初想要的但是同样好

我的目标是一个没有太多标签的干净和spasre接口,这个解决方案使列表元素不言自明。

如果任何人对主题标题有一个很好的建议,请发帖,因为这个非常有用。