Я только не понимаю как в цикле создания селектов присвоить одному из них какой-то див?
Ну какой-то присваивается - id=\"xf_{$field->id}_txt\", правда как уже заметили, это не список.
И зачем почем зря нагружать парсер:
$html .= '<input type="text" class="exfield exgroup'.$field->group.'" name="xf_'.$field->id.'_txt" id="'.xf_'.$field->id.'_txt" value="'.$f->value.'" />';
Форматированный результат всегда можно увидеть в отладчике, так что переносы и табуляция совсем не к чему. Идеальный html-код, это длииииинная строка без мусора.