HTML - 表格创建 - 具有下拉菜单的单个单元格将由主下拉菜单控制

时间:2015-02-11 23:36:49

标签: javascript php html mysql

我需要创建一个表(4列),它将从MySQL DB中获取数据并将其显示在第一列。

其余列都将包含具有特定值的下拉列表。用户可以选择更改下拉值。另一种可能性是,如果用户发现所有记录都是特定类型,则用户可以继续使用主下拉列表来更改该列的所有行值。

我尝试使用php,html和javascript的组合创建页面。

截至目前,我可以生成表格,但我无法在单元格中生成单个下拉列表。

JavaScript的:

<script type="text/javascript">
    var i = 0;
    var option;

    // document.getElementById("tbody").addEventListener("load", addSelect, false);
    function addSelect(value12)
    {
        window.alert(value12);

        var select = document.createElement("select");
        select.setAttribute("name", "mySelect" + i);
        select.setAttribute("id", "mySelect" + i);

        option = document.createElement("option");
        option.setAttribute("value", "value one");
        option.innerHTML = "ONE";
        select.appendChild(option);

        option = document.createElement("option");
        option.setAttribute("value", "value two");
        option.innerHTML = "TWO";
        select.appendChild(option);

        document.getElementById(value12).appendChild(select);
        i++;
    }

</script>

PHP代码:

 <?php
    $servername = "localhost";
    $username = "root";
    $password = "password";
    $dbname = "northwind";

    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);

    // Check connection
    if ($conn->connect_error)
    {
        die("Connection failed: " . $conn->connect_error);
    }

    $sql = "SELECT firstname FROM employees";

    $result = $conn->query($sql);

    echo '
        <br>
        <table id="table1" align="center" valign="center" cellspacing="0" cellpadding="0" border="0">
            <thead>
            <tr>
                <th>Species</th>
                <th>PR</th>
                <th>TN</th>
            </tr>
            </thead>
            <tbody>
            <tr>
                <td><select id="Species1" onchange="selectElement(9,this.value)"> >
                    <option value="volvo">Volvo</option>
                    <option value="saab">Saab</option>
                    <option value="opel">Opel</option>
                    <option value="audi">Audi</option>
                </select></td>
                <td><select id="Species2" onchange="selectElement(9,this.value)">
                    <option value="volvo">Volvo</option>
                    <option value="saab">Saab</option>
                    <option value="opel">Opel</option>
                    <option value="audi">Audi</option>
                </select></td>
                <td><select id="Species3" onchange="selectElement(9,this.value)">
                    <option value="volvo">Volvo</option>
                    <option value="saab">Saab</option>
                    <option value="opel">Opel</option>
                    <option value="audi">Audi</option>
                </select></td>
            </tr>
            </tbody>
        </table>
';

    if ($result->num_rows > 0)
    {
        // output data of each row
        echo '<table id="tablesorter-demo" class="tablesorter" border="0" cellpadding="0" cellspacing="1">';
        echo '<thead><tr><th>Primary Studies</th><th>Species</th><th>PR</th><th>TN</th>/tr></thead>';
        $i = 1;
        $j = 1;
        $k = 1;

        echo '<tbody id="tbody">';
        while($row = $result->fetch_assoc())
        {
            $var1 = "id" . $i;
            $var2 = "by" . $j;
            $var3 = "km" . $k;


            echo '<tr>';
            echo "<td>".$row[FirstName]."</td>";
            echo '<td id=""><script>addSelect(';$var1;')</script></td>';
            echo '<td id=$var2><script>addSelect($var2)</script></td>';
            echo '<td id=$var3><script>addSelect($var3)</script></td>';
            echo '</tr>';

            $i++;
            $j++;
            $k++;

        }
        echo '</tbody>';
        echo '</table><br />';

    }
    else
    {
        echo "0 results";
    }

    $conn->close();
?>

的jsfiddle:

我试图创建一个新的jsfiddle。我认为它没有正确显示。我会尝试改进它。

http://jsfiddle.net/8p3oLuuw/

1 个答案:

答案 0 :(得分:0)

好吧,我找到了另一个使用Jquery的解决方案。任何正在寻找类似答案的人都可以通过Drop Down寻找基于JQuery的数据网格。这将引导他们找到可能的解决方案。