2013-02-04 351 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制作)并与数据库进行交互。

(注意:“您喜欢的任何语言”受限于安装的内容或您可以在服务器上安装的内容(或你移动到的服务器)。)