如何从 HTML 复选框生成 SQL 查询
How to build an SQL query from HTML checkboxes?
我需要为 SQL 创建一个查询构建器,您可以在其中通过 HTML 复选框选择查询约束。每个复选框都有一个名称,用于列名称(例如 ActorName(和一个用于列值的值(如 Tom Hanks(。
我无法决定什么是最好的方法。我尝试添加/删除到 JavaScript 对象,然后遍历每个键值对,即每个 ActorName、每个 DirectorName,并将它们附加到 SQL 中的WHERE
约束中,但由于复选框名称不是唯一的,即有很多 Actor、流派等,它使事情复杂化。现在,我正在使用这种方法:
https://jsfiddle.net/Lompm0ew/5/
选中复选框后,将复选框的名称和值添加到 JS 对象,将 ActorName 作为对象键(因为这将始终是唯一的(,复选框名称作为对象值。我有一种感觉,这是一种不好的做法,我相信有更好的方法来实现我的目标,但我没有想法。
任何人都可以推荐一种更好的从复选框构建查询的方法吗?
您可以使用"序列化"通过 Ajax 获取和发送数据
首先,在 HTML 代码中添加表单
例:
<form>
<div id="checkboxes">
<label>
<input type="checkbox" value="Tom Hanks" name="actorName[]">Tom Hanks</label>
<label>
<input type="checkbox" value="Tim Allen" name="actorName[]">Tim Allen</label>
<label>
<input type="checkbox" value="Don Rickles" name="actorName[]">Don Rickles</label>
<label>
<input type="checkbox" value="Jim Varney" name="actorName[]">Jim Varney</label>
<label>
<input type="checkbox" value="Wallace Shawn" name="actorName[]">Wallace Shawn</label>
<label>
<input type="checkbox" value="Fantasy" name="genreName[]">Fantasy</label>
<label>
<input type="checkbox" value="Comedy" name="genreName[]">Comedy</label>
<label>
<input type="checkbox" value="Children" name="genreName[]">Children</label>
<label>
<input type="checkbox" value="Animation" name="genreName[]">Animation</label>
<label>
<input type="checkbox" value="Adventure" name="genreName[]">Adventure</label>
<label>
<input type="checkbox" value="USA" name="countryName">USA</label>
</div>
</form>
你的脚本 :
jQuery(document).ready(function($){
$(':checkbox').change(function() {
sendData();
});
})
function sendData () {
var $form = $('form');
$.ajax({
url : 'ajax.php',
data: $form.serialize(),
async : false,
success : function(response){
console.log(response);
}
});
}
你的阿贾克斯.php
<?php
var_dump($_REQUEST);
显示:
array(2) {
["actorName"]=>
array(3) {
[0]=>
string(9) "Tim Allen"
[1]=>
string(10) "Jim Varney"
[2]=>
string(13) "Wallace Shawn"
}
["genreName"]=>
array(1) {
[0]=>
string(9) "Animation"
}
}
每次单击复选框时,您都会发送 ajax.php 的数据。因此,您可以使查询服务器端
编辑:对不起,我忘了:您可以重命名发送数组的复选框名称
<label>
<input type="checkbox" value="Tom Hanks" name="actorName[]">Tom Hanks</label>
<label>
<input type="checkbox" value="Tim Allen" name="actorName[]">Tim Allen</label>
<label>
相关文章:
- 在sql查询的html中提交
- 需要帮助设计使用sql查询的网站搜索
- ajax发布数据并点击运行php-sql查询
- 如果sql查询成功,请打开一个新选项卡
- 循环遍历数组,并在javascript中向sql查询添加参数
- 循环中的本地数据库sql查询
- 从ajax中获取数据,同时将其放入sql查询中
- 将SQL查询+JSON文件生成移动到服务中?wcf?mvc
- 使用2个表单的SQL查询更新DIV
- SQL查询-替换字段名称中的句点
- 调用Javascript函数来获取sql查询的结果集,并将它们打印在html表中
- 每隔一行返回 SQL 查询
- 在 SQL 查询中使用 Jquery DatePicker 输出
- 从MS SQL查询到谷歌图表(Razor)的日期值
- 如何在更少的 SQL 查询中执行复杂的 API 授权
- SQL 查询到 JavaScript 数组
- JavaScript 可以完全用于制作 SQL 查询应用程序吗?
- 使用 SQL 查询中的 PHP 变量回显 JS 函数
- 从 Javascript 选择中选择 SQL 查询
- 使用 Javascript、PHP 和 AJAX 输出 SQL 查询