【问题标题】:Replace text input value with whatever is typed inside用里面输入的任何内容替换文本输入值
【发布时间】:2013-10-18 18:07:44
【问题描述】:

我已经为我网站上的项目制作了更新表单。在我的 php 中,我使用数据库中的现有信息填充输入文本标签的值。我希望能够将输入标签的值更改为我输入的任何内容,但似乎不起作用。当我点击提交时,值根本没有改变(我检查了我的数据库,字段的值和以前一样)。

我觉得这是一个非常简单的想法,基本上任何 WYSIWYG/CMS 功能都相同。我究竟做错了什么?我可能需要什么 Javascript/jQuery 来完成这个?

(糟糕)这是我的代码

(我正在使用 CodeIgniter)这是我的输入标签的 PHP:

<?php 
    $title_input = array(
        'name' => 'title',
        'id' => 'title',
        'autocomplete' => 'off'
    );

    if (isset($updating)) {
        $title_input['value'] = $project->title;
    }
    echo form_input($title_input);
?>

吐出来:

<input type="text" name="title" value="My Project Title" id="title" autocomplete="off">

提交表单后,这就是我(尝试)更改数据库中信息的方式:

$project->title = $this->input->post('title');

这与我创建新项目时使用的代码完全相同,只是我希望它能够检测到更改的输入文本值。 :/

【问题讨论】:

  • 你试过的邮政编码..
  • 显示你的代码!希望大写锁定能让您看到评论。
  • 您使用什么来阅读和处理提交的表单?听起来,您不是从表单中获取值,而是从数据库中读取它,所以很自然,它永远不会改变。
  • 很难知道为什么你的数据没有看到你的控制器和模型就没有进入你的数据库。另外,为什么不使用表单助手和 set_value 根据 DB 中的值有条件地设置值?

标签: jquery html forms codeigniter input


【解决方案1】:

我目前有一个页面,它接受输入并将其存储在数据库中,当重新访问该页面时,如果之前存储了任何信息,它会被加载并可以编辑。提交后,我再次保存。

您应该考虑的事项:

  • 确保在处理更新的函数中检查 $_POST。如果您使用的函数过于独立(对于 new 和 for update),则使用 echo 语句检查所有 if 语句参数是否有效且不为空)。
  • 尽可能多地使用 isset 与 != '' 的组合,这将确保正确评估 if 语句。
  • 维护一个单独的模型函数来处理更新。恕我直言,最好的办法是再次保存整个表格。不要只检查修改过的字段。您可以检查必填字段不要设置为空,但除此之外,如果可能,重新提交整个表单

如果您愿意分享您的代码,我们可以提供更多帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 2015-12-08
    • 1970-01-01
    • 2014-01-03
    • 2012-04-24
    • 2019-08-01
    相关资源
    最近更新 更多