gpt4 book ai didi

javascript - 判断checkbox是否有变化

转载 作者:行者123 更新时间:2023-11-30 00:48:53 25 4
gpt4 key购买 nike

所以我有一个表单,它执行查询并用文件路径形式的查询结果填充表单,上次更新时间等......它还为每个条目显示 5 个不同的受众复选框已填充,并且如果这些复选框在数据库中具有值,则会选中这些复选框(有 5 个可能的受众值 - 因此有 5 个复选框 - 并且一个条目可以有多个受众值,因此可以在一个条目中选中多个复选框)。到目前为止,我已经完成了所有工作,该页面显示了我的 mysql 数据库中的所有正确条目及其受众复选框。现在我需要做的是找到一种方法来检测这些复选框与最初从数据库检索的内容是否有变化,如果有变化,则将值插入到数据库中。我该怎么做呢? JavaScript?在 PHP 中比较数组?这是我的 while 循环的一部分,它使用复选框填充表单:

printf("\t<tr class='recordrow'>
\n\t\t<td><a class='page_modal' href='#mWindow%s' target='_blank'>%s</a></td>
\n\t\t<td class='ppath'>%s</a></td>
\n\t\t<td>%s</td>
\n\t\t<td><input type='checkbox' name='audience[]' $currentcheckbox/><div class='page_dialog' id='mWindow%s'><img src='exit.png' class='close' alt='close'/><img src='newwin.jpg' alt='new window'/><div id='content_section'>%s</div></div> </td>
\n\t\t<td><input type='checkbox' name='audience[]' $prospectivecheckbox/></td>
\n\t\t<td><input type='checkbox' name='audience[]' $facultycheckbox/></td>
\n\t\t<td><input type='checkbox' name='audience[]' $staffcheckbox/></td>
\n\t\t<td><input type='checkbox' name='audience[]' $externalcheckbox/></td>
\t</tr>",$folder_content["cms_id"],$folder_content["display_name"],$page_path,$update,$folder_content["cms_id"],$folder_content["path"],$folder_content["cms_id"],$folder_content["content"]);

最佳答案

这取决于您何时想要检测是否有更改:何时提交表单,或者何时实时单击复选框。如果是后者,只需对 javascript 事件执行 ajax 请求即可:

jQuery checkbox change and click event

http://html.net/tutorials/javascript/lesson21.php

如果是前者,我就不会费心检查复选框是否已更改。只需使用表单中提交的内容覆盖数据库中的值即可。在大多数情况下,我发现,在更新记录之前尝试检测更改会更加令人困惑并且容易出错,而且我还没有看到它有任何性能优势。

如果您只需在发生更改时执行更新,请获取原始复选框值的数组,并使用 array_diff 将它们与新值进行比较。

$values = get_current_values_somehow();
$remove = array_diff($values, $_GET['audience']); // Array of entries to remove
$add = array_diff($_GET['audience'], $values); // Array of entries to add

if (count($remove) > 0) {
// Remove from database
}

if (count($add) > 0) {
// Add to database
}

关于javascript - 判断checkbox是否有变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21147422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com