Создание динамического выпадающего меню при возврате набора результатов MySQL

0

Я возвращаю набор результатов из базы данных 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>";
?>
  • 0
    Что находится в $row['Status'] ?
Теги:

4 ответа

1
Лучший ответ
<select>
    <?php
    while($row=mysql_fetch_array($result)){
     ?>
     <option value = "<?php echo $row['Orderno']?>">
          <?php $row['other']?>
     </option>
     <?php
     }
     ?>
</select>

Это только образец. Вы можете использовать в соответствии с вашими требованиями.

  • 0
    Большое спасибо за решения. Раскрывающийся список будет содержать 3 элемента, которые изменят цвет ячейки для каждого элемента (другой цвет). Не могли бы вы дать мне какие-либо указатели относительно функции JS, чтобы использовать для каждого значения параметра в раскрывающемся списке состояния. У меня есть грубая идея. еще раз спасибо
0

Вы также можете использовать:

<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>
0

Нравится это. Обратите внимание, что $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>";
0
<?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 для обработки события изменения.

  • 0
    Большое спасибо за решения. Раскрывающийся список будет содержать 3 элемента, которые изменят цвет ячейки для каждого элемента (другой цвет). Не могли бы вы дать мне какие-либо указатели относительно функции JS, чтобы использовать для каждого значения параметра в раскрывающемся списке состояния. У меня есть грубая идея. еще раз спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню