问题描述
我正在尝试允许用户添加到传单地图上的点的路线,使用对点数据库的 sql 查询。因为我希望每个点都有多条路线通过它,所以我添加了额外的列:“route2”、“routenumber2”到“route5”、“routenumber5”到原始“route”和“routenumber”。
以下代码确实有效,但我认为将其写出五次是重复的,每次只使用一组不同的列。
if (e.target && e.target.id == "submitrest") {
const enteredRoute = document.getElementById("input_Route").value; // from user form input
const enterednumber = document.getElementById("input_routenumber").value;
const enterednickname = document.getElementById("input_nick").value;
const enteredID = document.getElementById("input_cartodb_id").value;
cartoData.eachLayer(function (layer) {
// sql to put layer in -- Building the sql query
let sql =
"UPDATE stops " +
"SET area = '" + enteredRoute + "'," +
"route_number = '" + enterednumber + "'," +
"nickname = '" + enterednickname + "' " +
"WHERE cartodb_id = " + enteredID + ";"
console.log(sql);
if (enteredRoute && enterednickname && enterednumber && enteredID) {
fetch(url1,{
method: "POST",headers: {
"Content-Type": "application/x-www-form-urlencoded"
},body: "q=" + encodeURI(sql)
})
.then(function (response) {
return response.json();
})
.then(function (data) {
console.log("Data saved:",data);
})
我要问的是,像 document.getElementById
如何允许用户每次输入不同的数据并使用相同的代码发送数据,是否有一种较少重复的方法来制作 sql 查询功能,允许我如果“route2”和“routenumber2”已满,则将数据放入“route3”和“routenumber3”,依此类推。
我想要的是 CartoDB 中的一行有五组/列路由和路由编号,用户可以将数据输入到其中,最好使用较少的重复代码。
到目前为止,我已经尝试使用 Javascript 类构造函数和工厂方法。我可以获得这些以允许 sql 查询中指定的列是可变的吗?谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)