Вызов функции () в printf ()

0

У меня есть функция while(), которая зацикливает строку данных в моей таблице.
Теперь мне нужно иметь выпадающий список в пределах одного столбца каждой строки.
Это выпадающее меню выполняется, используя цикл.

Итак, вот функция, которая создает выпадающее меню:

function createDropdown($total)  
{  
    $i = 1;  
    echo "<select>";  
    while($i <= $total)  
    {  
        echo "<option value = '$i' id =* '$i'>$i</option>";  
        $i++;  
    }  
    echo "</select>";  
}

Чтобы распечатать таблицу:

while($row1 = mysql_fetch_array($result1))  
{  
    print("<tr>");
    printf("<td>%s %s</td>", $row1["fname"], $row1["lname"]`);  
    printf("<td>".createDropdown($count)."</td>");  
    printf("<td colspan = '2'>%s</td>",$count);  
    printf("<td><span id = 'attendance'>111</span></td>");  
    print("</tr>");  
}

Итак, теперь у меня много выпадающих списков, которые дают мне то, что я хочу.
Проблема в том, что мне нужно опубликовать все это на следующей странице. Это означает, что идентификатор каждого раскрывающегося списка должен быть каким-то образом помещен в массив.

В любом случае я могу это сделать? Спасибо заранее.

Чтобы сделать все более ясным, <select> может иметь любой ID, но проблема в том, что каждый выпадающий список будет иметь одинаковый идентификатор. При использовании $_POST я получаю только значение из последнего раскрывающегося списка, а не все из них. Мне нужно массировать выпадающие окна, с которыми у меня были проблемы в течение некоторого времени.

  • 0
    К вашему сведению: В языке сценариев, таком как PHP, вам не нужен printf, если вам не нужно использовать его возможности форматирования (например, `printf ('% 0.2d', 3.234234) -> '3.23'). PHP идеально подходит для вставки переменных в текст, используя обычные строки в двойных кавычках, без дополнительных затрат на printf.
  • 0
    Да, я понял это. В моей группе есть люди, которым нравится printf. Я планирую изменить их на простое эхо.
Теги:

2 ответа

1
Лучший ответ

Как насчет этого (извините, я также немного не понимаю, о чем вы спрашиваете):

function createDropdown($num, $total)
{
    $i = 1;
    $result = "<select id='sel$num' name='sel$num'>";
    while($i <= $total)
        {
        $result .= "<option value = '$i' id = '$i'>$i</option>";
        $i++;
        }
    $result .= "</select>";
    return $result;
}


$num = 0;
while($row1 = mysql_fetch_array($result1))
{
    print("<tr>");
    printf("<td>%s %s</td>", $row1["fname"], $row1["lname"]);
    printf("<td>".createDropdown($num++, $count)."</td>");
    printf("<td colspan = '2'>%s</td>",$count);
    printf("`111");
    print("");
}

Я изменил ваше эхо в вашей функции и вместо этого вернул строку (я думаю, что это лучший стиль), а в поле выбора будут указаны имя (sel0, sel1, sel2 и т.д.)

0

Вам нужно передать $id в качестве параметра функции createDropDown():

function createDropdown($total, $id = 'somedefaultvalue') {
   echo "<select id=\"$id\">";
   for (...) {
      ...
   }
   echo "</select>"
}

Ещё вопросы

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