如何在POST后自动获取一些数据?

时间:2014-03-03 07:59:17

标签: php html ajax json

如何在POST后自动(从服务器)返回(浏览器)一些数据?

  1. 我有一个HTML表单
  2. 我将表单的数据发布到php代码,例如:saveRecord()
  3. php代码将数据保存在mySQL DB中
  4. 如果数据包含非0记录ID,则会有UPDATE,如果记录ID == 0则会有INSERT,并且php代码知道(从DB返回)新记录ID
  5. (在INSTER之后)如何将新记录ID发送回(浏览器)HTML表单?
  6. 如果我编辑现有记录(ID!= 0),那么就可以了。

    我的问题是,当我发布新数据(ID == 0)时,我可以多次发布,而php代码每次都会在数据库中创建一条新记录...但我真的不希望这样。我想(从服务器)发回(到浏览器)INSERTed记录ID(在HTML表单中),以防止多个INSERT ...

    我该怎么做?!

    具体的CI代码:

    function update($record) {
    
        print_r($record);
    
        $id = $record['crn_id'];
        $record['crn_active'] = ( ($record['crn_active'] == 'on') ? 1 : 0 );
        array_shift($record);
        if ($id == 0) {            
            $this->db->insert('currencies', $record);
        } else {
            $this->db->where('crn_id', $id);
            $this->db->update('currencies', $record);
        }
    }
    

    >

1 个答案:

答案 0 :(得分:1)

以下三种方法可以帮助您实现可以推广的方式:

  1. 使另一列唯一。如果您非常关心可能在数据库中存在重复数据,那么可能会有一些规则可以以约束的形式进行概括。
  2. 点击后点击提交按钮(例如<input type="submit" onsubmit="this.disabled=true">)。 (如果某些基于ajax的验证失败,请确保重新启用它)
  3. 使用生成的一次性密钥以确保用户不仅重新加载提交的页面。看看form keys,它也可以帮助对抗CSRF和XSS攻击。