1

入力時に自動的にサイズ変更する必要はありません。ページが変数をロードするときに正しいサイズにする必要があるだけです$row['text'];

<textarea style="width:630px;"><? echo $row['text'];  ?></textarea>

そのため、ページが読み込まれると、テキストエリアにそのテキストの値が表示されます。行数を数え、それに基づいてテキスト領域の高さを設定する場所にしようとしています

4

4 に答える 4

3

jquery プラグインを使用できます。

http://www.jacklmoore.com/autosize

または、CSS を使用して幅と高さを auto に設定することもできます

于 2012-08-02T01:33:20.413 に答える
1
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>
于 2012-08-02T01:36:15.080 に答える
1

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>
于 2012-08-02T02:07:21.940 に答える