Задать вопрос
@dadduUrsa
Вернувшийся кодер недоучка

Почему выползает за пределы таблицы?

Добрый вечер!
Столкнулся с такой проблемой. Есть две функции: первая создает список с опциями из SQL запроса

function create_tr_type_list ($data_tr, $selected) {
            echo "<select name='select_tr_tp_id'>";
            foreach ($data_tr as $row) {
                if ($row['id'] == $selected) {
                echo ("<option value=".$row['id']." selected>".$row['transaction_typecol']."</option>");
                } else {
                echo ("<option value=".$row['id'].">".$row['transaction_typecol']."</option>");
                }
            }
            echo "</select>";
        }


Вторая функция делает таблицу на основе другого SQL запроса и в ячейки первого столбца должна вставлять список из той функции.
function create_tr_table ($data, $data_transaction_type) {
            echo "<table>";
            foreach ($data as $row) {
                echo "<tr>";
                echo ("<td>".create_tr_type_list($data_transaction_type, $row['transaction_type_id'])."</td>
                <td>".$row['product']."</td>
                <td>".$row['quantity']."</td>
                <td>".$row['note']."</td>");
                echo "</tr>";
            }
            echo "</table>";
        }


функцию вызываю уже в HTML

create_tr_table($data_transaction, $data_transaction_type);


Данные в таблице и в списках выводятся верные, однако данные в списке выводятся перед таблицей. Подскажите что я делаю не так. И вообще может такое решение костыль?
Спасибо

5e40809bde294132297549.png
  • Вопрос задан
  • 87 просмотров
Подписаться 2 Простой 2 комментария
Решения вопроса 1
Compolomus
@Compolomus Куратор тега PHP
Комполом-быдлокодер
Алексей Головин, функция не должна выводить, а должна возвращать
То есть
function foo($args1, $args2) {
    $html = '';
    foreach ($args1 as $val) {
        $html .= $val;
    }
    return $html;
}

echo foo($args1, $args2);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы