2013-02-04 590 views
0

這是我的HTML表單:更新表格單元格

<form name="input" action="html_form_action.asp" method="get"> 
    <input type="checkbox" id="mycheckbox">Don't show me again<br> 
    <input type="submit" id="Submit"> 
</form> 

我有一個表,被稱爲: 「mytable的」。此表包含:名稱(字符串),框(布爾)。

我試圖做的下一件事: 當用戶選中don't show me again框時,我想更新表格的框(假設id = 6的行)。

p.s.桌子的盒子插入False。

,所以我必須做一些事情,如:

$("#submit").click(function() { 
    if($("#mycheckbox").is(':checked')) { 
     //here I have to update the table in the database 
    } 
}); 

我該怎麼辦呢?

我找到了php的例子,但我不想用php來做。

UPDATE:

根據您的回答,我想的Ruby-on-軌道做。

我發現這一點:

update_sql = "update mytable set box = TRUE where id = 6" 
affected_rows = Job.connection.update(update_sql) 

任何幫助表示讚賞!

+1

你必須使用一些像php這樣的服務器端腳本語言。 jQuery是客戶端,所以它不能直接與數據庫交互。你可以啓動ajax調用一些PHP腳本,它將更新數據庫 – Deadlock

回答

1

您需要創建一個控制器來接受ajax請求,但首先將js更新爲這個請求。

# js 
$("#submit").click(function() { 
    $.ajax({ 
    url: '/my_tables/' + <id of resource to update>, 
    type: 'PUT', 
    data: { my_table: { box: $("#mycheckbox").is(':checked') } } 
    }); 
}); 

創建一個名爲MyTablesController

# my_tables_controller.rb 
class MyTablesController < ActionController::Base 
    def update 
    @my_table = MyTable.find params[:id] 
    @my_table.update_attributes params[:my_table] 
    # do something else here like a redirect ... 
    end 
end 

控制器這是它的要點。如果你不能使它工作,你可能需要從更基本的教程開始。祝你好運!

+0

非常感謝!我正在努力做到這一點! –

1
$("#submit").click(function() { 
    if($("#mycheckbox").is(':checked')) { 
     $.ajax({ 
      url: 'post.php', 
      cache: false, 
      success: function() { 
        alert("done"); 
      } 
     }); 
    } 
}); 

您可以使用$.ajax更新數據庫中的表。只需創建post.php文件並在那裏更新表中設置一個查詢。

此外,PHP使用mysqli連接到最新版本的數據庫。 mysql_函數已棄用。

+0

謝謝..對不起,我正在更新我的主題。 –

1

你可以使用你的服務器(even JavaScript)在喜歡的任何語言,但你需要服務器端代碼處理HTTP請求(您可以使用XMLHttpRequest從JavaScript製作)並與數據庫進行交互。

(注意:「您喜歡的任何語言」受限於安裝的內容或您可以在服務器上安裝的內容(或你移動到的服務器)。)