裝載大文成Zend的textarea的我試圖填充textarea
這樣從數據庫
$this->addElement('textarea', 'body', array(
'label' => $translate->translate('Contents:'),
'cols' => '80',
'rows' => '24',
'required' => true
));
從數據庫記錄中定義。該記錄是以UTF-8格式包含頁面的HTML文本的BLOB。
$form->populate(array(
// ...
'body' =>
str_replace("\\n", "\n",
html_entity_decode(
$page['body']
)
),
// ...
));
不幸的是,當文本的長度大於2934個字節時,該字段不是在所有填充。我試圖通過發行設置maxlength
'maxlength' => '4096',
但它似乎沒有效果。現在
,從我可以在網上找到,textarea
限額應大於2934個字節,更接近30-60 KB。除了將領域分成兩個單獨的表單元素外,我怎麼能解決這個問題呢?
更新 似乎罪魁禍首是字符「ß」,它在數據庫中編碼爲兩個字符「Ã」。該字符的第一次出現位於文本內的位置2934處,因此,兩字節表示中的第二個字符以某種方式將字段從完全接收文本中斷開。
你確定問題沒有得到BLOB從數據庫中?看起來問題更可能出現在那裏,而不是獲取表單元素來獲取那麼多數據。 – ficuscr 2013-03-11 16:33:15
不,我正文本正在從數據庫中檢索,原因有二:1)我想清楚'echo'ing它,成功,2)如果我做'SUBSTR($頁[「身體」],1 ,2934)'而不是,表單元素正確填充。用'substr($ page ['body'],1,295)'它已經不是。 – Vilinkameni 2013-03-11 18:10:23
將HTML傳播到textarea中......如果你看看頁面的源代碼就是一切嗎?您可能需要查看使用所見即所得編輯器或通過'htmlentitites()'運行它。請參閱:http://stackoverflow.com/questions/3777297/php-html-form-textarea-containing-html – ficuscr 2013-03-11 20:01:33