Я возвращаю набор результатов из базы данных mySQL в таблицу, используя 5 столбцов. До сих пор так хорошо, что в таблице отображаются правильные полевые данные. Я хотел бы знать, как мне нужно создавать раскрывающееся меню для каждой строки? Это будет 6-й столбец с именем "Статус" и будет состоять из трех значений, которые изменят внешний вид строки. Другое дело, что "Статус" не будет связан с базой данных. Вот мой текущий код:
<?php
$result = mysql_query("SELECT * FROM somewhere")
or die (mysql_error());
?>
<table class="table1" >
<h4>Orders</h4>
<tr>
<th>Number</th>
<th>Date</th>
<th>Ordered By</th>
<th>Supplier</th>
<th>Price</th>
<th>Status</th>
</tr>
<?php
while($row=mysql_fetch_array($result)){
echo "</td><td>";
echo $row['Orderno'];
echo "</td><td>";
echo $row['Orderdate'];
echo "</td><td>";
echo $row['Orderedby'];
echo "</td><td>";
echo $row['Supplier'];
echo "</td><td>";
echo $row['totalprice'];
echo "</td><td>";
echo $row['Status'];
echo "</td></tr>";
}
echo "</table>";
?>
<select>
<?php
while($row=mysql_fetch_array($result)){
?>
<option value = "<?php echo $row['Orderno']?>">
<?php $row['other']?>
</option>
<?php
}
?>
</select>
Это только образец. Вы можете использовать в соответствии с вашими требованиями.
Вы также можете использовать:
<select class="form-control" name="job_sector" id="job_sector">
<?php
$num_results = mysqli_num_rows($result);
for ($i=0;$i<$num_results;$i++) {
$row = mysqli_fetch_array($result);
$name = $row['job_title'];
echo '<option value="' .$name. '">' .$name. '</option>';
}
?>
</select>
Нравится это. Обратите внимание, что $options
находятся вне цикла. Я также зафиксировал позицию тэга <h4>
- он был внутри тега <table>
.
<?php
function create_select($name, $options = array(), $selected = null)
{
$html = '<select name="'.$name.'">';
foreach ($options as $k => $v)
{
$html .= '<option value="'.$k.'"';
if ($k == $selected)
{
$html .= ' selected';
}
$html .= '>'.$v.'</option>';
}
$html .= '</select>';
return $html;
}
$result = mysql_query("SELECT * FROM somewhere")
or die (mysql_error());
?>
<h4>Orders</h4>
<table class="table1" >
<tr>
<th>Number</th>
<th>Date</th>
<th>Ordered By</th>
<th>Supplier</th>
<th>Price</th>
<th>Status</th>
</tr>
<?php
$options = array(
'despatched' => 'Despatched',
'pending' => 'Pending'
// etc...
);
while($row=mysql_fetch_array($result))
{
echo "</td><td>";
echo $row['Orderno'];
echo "</td><td>";
echo $row['Orderdate'];
echo "</td><td>";
echo $row['Orderedby'];
echo "</td><td>";
echo $row['Supplier'];
echo "</td><td>";
echo $row['totalprice'];
echo "</td><td>";
echo create_select('status_'.$row['id'], $options, $row['Status']);
echo "</td></tr>";
}
echo "</table>";
<?php
$result = mysql_query("SELECT * FROM somewhere")
or die (mysql_error());
?>
<h4>Orders</h4>
<table class="table1" >
<tr>
<th>Number</th>
<th>Date</th>
<th>Ordered By</th>
<th>Supplier</th>
<th>Price</th>
<th>Status</th>
</tr>
<?php
while($row=mysql_fetch_array($result)){
echo "</td><td>";
echo $row['Orderno'];
echo "</td><td>";
echo $row['Orderdate'];
echo "</td><td>";
echo $row['Orderedby'];
echo "</td><td>";
echo $row['Supplier'];
echo "</td><td>";
echo $row['totalprice'];
echo "</td><td>";
echo ' <select id="'.$row['Orderno'].'" onchange="myJSFunction(this)">
<option>Example</option>
<option>Example 2</option>
</select>';
echo "</td></tr>";
}
echo "</table>";
?>
Затем запишите функцию JJ myJSFunction для обработки события изменения.
$row['Status']
?