【发布时间】:2026-01-31 02:35:01
【问题描述】:
想象一个记录列表(从数据库中提取)显示在表格中。在表格的早期视图中,某些行已被选中或未选中,并且该状态会根据需要在每个记录行的开头显示为空或已填充的复选框。
我希望用户能够单击或取消单击这些复选框,并将修改后的状态自动保存在后台,而无需单击其他提交按钮,但到目前为止我还没有找到一个明确的例子我认为使用 javascript 应该相当简单。
我是 Javascript 的新手,还没有弄清楚在将控件的属性传递给脚本时如何利用这些属性。我创建了一个代码 sn-p 来显示问题的基本原理。
function toggle_select(id) {
// the id number that is passed is the primary key value for the database record
alert('id '+id+' was clicked'); //this part works, but how to pass the new state to this script?
// ?? can the function read if the checkbox has been checked or unchecked?
// if so, then run a background process (ie. php script?) to update that record to the new checked or unchecked state
// ie. $sql="update recordtable set is_selected='YES/NO' where rec_ID=id limit 1";
};
<table>
<tr><th colspan="2">SELECT REQUIRED RECORDS</th></tr>
<tr><td><input type="checkbox" name="is_selected" checked onclick="toggle_select(1)" /></td><td>Record 1</td></tr>
<tr><td><input type="checkbox" name="is_selected" onclick="toggle_select(2)" /></td><td>Record 2</td></tr>
<tr><td><input type="checkbox" name="is_selected" checked onclick="toggle_select(3)" /></td><td>Record 3</td></tr>
<tr><td><input type="checkbox" name="is_selected" checked onclick="toggle_select(4)" /></td><td>Record 4</td></tr>
<tr><td><input type="checkbox" name="is_selected" onclick="toggle_select(5)" /></td><td>Record 5</td></tr>
<tr><td><input type="checkbox" name="is_selected" onclick="toggle_select(6)" /></td><td>Record 6</td></tr>
</table>
底线:目标是单击复选框并繁荣,该记录的选中/未选中状态将保存到数据库中,而无需完整的表单提交/页面重新加载。
【问题讨论】:
-
tika 的回答是对的,但是有一个很大的假设。他假设您正在使用 jQuery。如果您使用 jQuery,一切都会变得容易得多,因为您可以轻松找到复选框的状态,而 ajax 是轻而易举的事。如果您可以使用它,那么有很多关于这类事情的示例。在这里试试:*.com/questions/6017558/…
-
我想我越来越接近答案了:但我不太确定如何在 javascript 的过程中将值传递给 php 脚本。另外,是否可以立即将原始复选框替换为已切换属性的复选框?jsfiddle.net/eLcjj12s/4
-
请注意,上面的小提琴包含修改后的 javascript...但仍然不完整。
标签: javascript php mysql checkbox autosave