0

我用 php - CodeIgniter 框架和 JavaScript - jQuery 和 Bootstarp 框架编写了一个应用程序。我喜欢实现一个通用的“现场编辑”方法,我不喜欢使用任何插件,所以我使用:

<div class='editField">
  <input name="<?=$value->id?>" data-t="table_name" data-n="field_name" data_func="update" value="$value->value"/>
</div>

<script>
$(function () {    
    $('.editField').on('focusout', 'input, select', function () {
        var dta = {
            't' : $(this).attr('data-t'),
            'n' : $(this).attr('data-n'),
            'i' : $(this).attr('name'),
            'val' : $(this).val()
        };
        var le = 'index.php/linkToUpdateController/'+$(this).attr('data-func');
        $.ajax({
            type: 'POST',
            url: le,
            data: dta
        });
    }); 
});
</script>

和linkToUpdateController.php:

public function update() {
       $arr = array(
       $this->input('n') => $this->input('val')
    );

    $this->db->where('id', $this->i);
    $this->db->update($this->t, $arr);
}

我知道 CodeIgniter activeRecords ->where() 方法会自动转义并产生更安全的查询,但我对 html5 'data-' 声明方法感到有些奇怪,因为我需要使用真实的表名和字段名,而我的方法变得如此透明的。

因此,任何关于此方法安全问题的赞赏、评论或线索都将不胜感激,但我的意图是使用“现场编辑”方法不要退出。谢谢!狮子座。

4

0 回答 0