【问题标题】:I got blank space at text area in every update time每次更新时我的文本区域都有空白
【发布时间】:2011-04-24 08:27:27
【问题描述】:
<textarea name="email_message" id="email_message" cols="65" rows="15"><?php echo trim($entry['message']);?></textarea>

当我使用上面的 html 代码更新时,它会生成两次包含在消息中的空白行。

例如:

Dear Sir
(here is one now now)
How are you?

当它更新到数据库时,它会像这样保存:

Dear Sir
(here is two lines)

How are you?

每次保存都会增加空白行。

PHP 代码在这里:

function email_template_save()
    {
        $content = $this->input->post('email_message');
        $this->load->model('templates');
        $data['msg']=$this->templates->update_email_template($content,$this->session->userdata('username'));
        $data['main_content']='message';
        $this->load->view('template',$data);

    }


function update_email_template($content,$username)
    {
        $data=array(
            'message'=>$this->input->post('email_message'));
            $this->db->where('username', $username);
            $this->db->update('email_format', $data); 
            return 'Successfully Updated';


    }

【问题讨论】:

  • 你能显示你用来更新数据库的php代码吗?
  • 我已经更新了 PHP 代码。谢谢
  • 也很高兴看到 update_email_template()。
  • 我也放了 update_email_template()

标签: php html codeigniter textarea


【解决方案1】:

我知道这一切,这是最新版本的 CI 和 Windows 换行符的问题。

看到这个答案:PHP textarea saving extra new lines to MySQL DB

这是我正在使用的解决方法,输入类的扩展:

<?php defined('BASEPATH') OR exit('No direct script access.');

/**
 * CI 2.0 (Reactor version) did something funny to newlines.
 * Textareas would $_POST an extra newline, this is a patch for that "feature".
 * 
 * @package     Codeigniter
 * @subpackage  Input
 */
class MY_Input extends CI_Input {

    public function __construct()
    {
        if (PHP_EOL == "\r\n")
        {
            $this->_standardize_newlines = FALSE;
        }
        parent::__construct();
    }
}
/* end file */

这也与您的其他问题有关:explode error \r\n and \n in windows and linux server

请参阅此处了解相关说明:When do I use the PHP constant "PHP_EOL"?

【讨论】:

    【解决方案2】:

    是否有可能将空白表示为\r\n,而当您打印它们时,\r\n 分开?尝试运行&lt;textarea name="email_message" id="email_message" cols="65" rows="15"&gt;&lt;?php echo trim(str_replace("\r\n","\n",$entry['message']));?&gt;&lt;/textarea&gt;

    【讨论】:

    • 它不工作。我在 Windows (PHP 5.3) 上运行。操作系统重要吗?
    【解决方案3】:

    您可能两次转义值,我最近遇到了同样的问题,请检查您是否在获取帖子和保存数据时都转义了值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-01
      • 2016-02-04
      • 2020-12-05
      • 2019-12-05
      相关资源
      最近更新 更多