Возможно, есть лучшие (читай: менее навязчивые) способы, но простейшим, вероятно, является установка видимости элемента на скрытый и изменение вашего Javascript, чтобы сделать его видимым.
Итак, добавьте style="visibility:hidden;"
к элементу textbox и измените javascript для установки .style.visibility = 'visible'
Редактирование вашего кода:
while($row = mysql_fetch_array($result)){
echo "<tr>";
echo "<td><input name='CBox $TBCounter' type=\"checkbox\" value=\"{$row['type']}\" onclick=\"document.getElementById('TBox $TBCounter').style.visibility='visible';\"/></td>";
echo "<td>" . $row['type'] . "</td>
<td><input type=\"text\" name=\"mytext\" id=\"TBox $TBCounter\" style=\"visibility:hidden\"></td><br />
</tr>";
$TBCounter++;
}
Согласно комментарию Джо, это не будет работать для пользователей с отключенным javascriptкак поле, если оно скрыто при загрузке страницы.Одним из способов решения этой проблемы является установка поля, невидимого в javascript, путем вывода встроенного тега сценария.
while($row = mysql_fetch_array($result)){
echo "<tr>";
echo "<td><input name='CBox $TBCounter' type=\"checkbox\" value=\"{$row['type']}\" onclick=\"document.getElementById('TBox $TBCounter').style.visibility='visible';\"/></td>";
echo "<td>" . $row['type'] . "</td>
<td><input type=\"text\" name=\"mytext\" id=\"TBox $TBCounter\"></td><br />
</tr>
<script>document.getElementById('TBox $TBCounter').style.visibility='hidden';</script>";
$TBCounter++;
}
Третий (лучший) альтернативный вариант - установить класс для текстовых полей и использовать javascript, чтобы скрыть все элементы.с этим классом при загрузке страницы.