入力時に自動的にサイズ変更する必要はありません。ページが変数をロードするときに正しいサイズにする必要があるだけです$row['text'];
<textarea style="width:630px;"><? echo $row['text']; ?></textarea>
そのため、ページが読み込まれると、テキストエリアにそのテキストの値が表示されます。行数を数え、それに基づいてテキスト領域の高さを設定する場所にしようとしています
入力時に自動的にサイズ変更する必要はありません。ページが変数をロードするときに正しいサイズにする必要があるだけです$row['text'];
<textarea style="width:630px;"><? echo $row['text']; ?></textarea>
そのため、ページが読み込まれると、テキストエリアにそのテキストの値が表示されます。行数を数え、それに基づいてテキスト領域の高さを設定する場所にしようとしています
function set_height($str) {
$ary = explode("\n", $str);
$style = '';
if(is_array($ary) && count($ary)>1) {
$height = 18 * count($ary);
$style=' style="height:'.$height.'px; width:630px;" ';
}
return $style;
}
テキストエリア
<textarea <?=set_height($row['text']);?> ><? echo $row['text'];?></textarea>
Jquery autoresize が最適なオプションです。実行可能と思われる他の唯一のオプションは、テキストの「rows」および「cols」属性を使用することです。約 630px、約 32 に相当する列の量を測定します (630/20 に基づく 20 は平均文字幅です)。次に、必要な行数を知るだけで済みます。これは、はるかに簡単な式です。
//Divide the width by the height to get the number of rows required, then round up with
//math.ceil to get a rounded number. (1.01 rows would still need to be 2 rows)
$num_rows = math.ceil(32 / strlen($rows['text']));
<textarea rows="<? echo $num_rows ?>" cols="32"><? echo $row['text']; ?></textarea>