我需要创建一个表(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。我认为它没有正确显示。我会尝试改进它。
答案 0 :(得分:0)
好吧,我找到了另一个使用Jquery的解决方案。任何正在寻找类似答案的人都可以通过Drop Down寻找基于JQuery的数据网格。这将引导他们找到可能的解决方案。