解决javascript和数据库表逻辑问题
当我查询数据库表时,我会返回表示某个项是否存在(该项是列名)的记录的值“是”或“否”。我想创建一个字符串来表示按名称提供的产品(而不是我现在所做的“kitchen table=“+kitchenTable 我认为这可以通过一系列if语句来解决(很糟糕),这些if语句将变量设置为product name或“”,然后在字符串中包含所有变量解决javascript和数据库表逻辑问题,javascript,mysql,Javascript,Mysql,当我查询数据库表时,我会返回表示某个项是否存在(该项是列名)的记录的值“是”或“否”。我想创建一个字符串来表示按名称提供的产品(而不是我现在所做的“kitchen table=“+kitchenTable 我认为这可以通过一系列if语句来解决(很糟糕),这些if语句将变量设置为product name或“”,然后在字符串中包含所有变量 var kt; if (kitchenTable == yes) kt = "kitchen table"; else kt = ""; if (kitch
var kt;
if (kitchenTable == yes) kt = "kitchen table";
else kt = "";
if (kitchenCabinet == yes) kc = "kitchen cabinet";
else ka = "";
output = kt + ', ' + kc;
大约有50个项目可以呈现给用户,是否有更有效的方法来完成此任务?一个选项是更改值输入到datbase表中的方式,使其不是“是”,而是项目名称,但这似乎是解决此问题的一种更差的方法当然,您没有给出有关如何o您创建的查询是一个模拟查询的函数的虚拟模型
var available = [];
var result = query("kitchen table");
result === "yes" && ( available.push("kitchen table") );
var output = available.join();
您想要的实际上是内置在javascript本身中的 我想说,通过组织代码并将其转换为更可读的格式,在这种情况下,使用对象文字将真正简化您的生活 我还建议您将服务器数据转换为true和false,因为这是一种标准化的布尔值通信方式,并允许下面的方法像它那样工作:
// From server response
var results = {
kitchenCabinet: true,
kitchenTable: true
}
// Use this for your storage of all related items
var kitchenProps = {
kitchenCabinet: 'kitchen cabinet',
kitchenTable: 'kitchen table'
}
// Reuse this function for each time your need a new category (masterBathroomProps...)
function getItemDataIfExists(results, hashTable){
'use strict';
var output = 'Your total is: ';
for (var item in results) {
if (!results.hasOwnProperty(item)) return;
if (results[item]) output += 'A '+hashTable[item]+' ';
}
return output;
}
getItemDataIfExists(results, kitchenProps);
说明:
循环遍历包含键名和true false值的对象的结果集。在循环中,如果键名的值为true,则使用该键名访问属性(在本例中为您选择的字符串)。此处的“键”是指每个对象中的键名必须对齐
这是一个现场演示:
我想澄清一下;每个项目都有一列?因此,大约有50列,对吗?行是包含项目的任何内容,可能是门牌号/名称或带有某种唯一标识符的房间?我写的答案对您有何作用?抱歉,目前所有数据都是从ajax传递到javascript的,一旦我完成了这项工作我会尝试在ajax方面完成这项任务……但现在我想用简单的方法来完成。