簡體   English   中英

POST后如何自動取回一些數據?

[英]How can I get back some data automatically after a POST?

POST后如何自動(從服務器)取回(返回到瀏覽器)一些數據?

  1. 我有一個HTML表單
  2. 我將表單的數據發布到php代碼中,例如:saveRecord()
  3. php代碼將數據保存在mySQL DB中
  4. 如果數據包含非0記錄ID,將有一個UPDATE,如果記錄ID == 0,則將有INSERT,並且php代碼知道(從DB取回)新記錄ID
  5. (在INSTER之后)如何將新記錄ID發送回(瀏覽器)HTML表單?

如果我編輯現有記錄(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. 使另一列唯一。 如果您非常關心數據庫中是否可能存在重復數據,那么可能會有一些規則可以以約束的形式概括。
  2. 單擊提交按鈕后將其禁用(例如<input type="submit" onsubmit="this.disabled=true"> )。 (如果某些基於ajax的驗證失敗,請確保重新啟用它)
  3. 使用生成的一次性密鑰來確保用戶不只是重新加載提交的頁面。 查看表單密鑰 ,它們也可以幫助抵抗CSRF和XSS攻擊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM