我正在开发一个 CI 项目并实施了脚本化的 InPlaceEdit。它可以工作,但在更新值时和之后表现得很奇怪。
1)当我单击编辑时,即使该字段只有一个单词并且应该是 1 行,它也会产生一个包含 3 列和 50 行的文本区域。脚本似乎在原始值之前添加了空格。
2)我保存新值并想重新编辑它,它给了我两倍的表格。在那之后的4倍等等......
HTML 因此,当网站呈现时,该行如下所示:
<h2 id="case_title-editme-27" class="editable savetitle" onclick="EditInput('case_title','27', 'cases');"> One line </h2>
点击就地编辑会产生:
<form id="case_title-editme-27-inplaceeditor" class="input-edit">
<textarea class="editor_field" rows="3" cols="40" name="value"></textarea>
<br>
<input class="editor_ok_button" type="submit" value="Save">
<a class="editor_cancel_link editor_cancel" href="#">cancel</a>
</form>
<h2 id="case_title-editme-27" class="editable savetitle" onclick="EditInput('case_title','27', 'cases');" title="Click to edit" style="display: none;"> One line </h2>
这是我的 JS:
function EditInput(field, id, table) {
var id = id;
var table = table;
var field = field;
new Ajax.InPlaceEditor(
field+'-editme-'+id,
'<?PHP echo base_url();?>saveajax/'+id, {
okText: 'Save',
formClassName: 'input-edit',
callback: function(form, value) { return 'table=' + table + '&field=' + field + '&value=' + escape(value) },
}
);
}
和 PHP 视图
<?php foreach($caseheadlines as $headline):?>
<h2 class="editable savetitle" id="case_title-editme-<?php echo $headline['case_id']; ?>" onclick="EditInput('case_title','<?PHP echo $headline['case_id']; ?>', 'cases');">
<?php echo $headline['case_title']; ?>
</h2>
<?php endforeach;?>
因此,当单击 div 时,会触发 js 函数 get 并且一切正常,预计会出现上述问题。控制器和模型都很好,数据被保存到数据库中。
有人有什么想法吗?