JQuery / Javascript - 多个变量名称

时间:2017-02-09 14:29:26

标签: javascript jquery sql

所以我的SQL对象目前有&#34; 名称&#34;,&#34; Desc &#34;。 我在HTML网页上的当前实时代码仅查看&#34; 名称&#34;在SQL中引用它需要的项目信息:  <a data-name="Washer">Washer</a>

在SQL中,如果我更新&#34; Washer&#34;使用新名称(&#34; Washer2&#34;),html工具提示将中断(在检查HTML代码时无法找到&#34; Washer&#34;)。 因此,我将在SQL表中为每个对象添加第三个SQL列:&#34; 名称&#34;,&#34; Desc &#34;, &#34;的的β-名称&#34 ;.所以&#34; beta-name &#34;的SQL信息我可以拥有&#34; Washer&#34;并且在&#34; 名称&#34;我可以拥有&#34; Washer2&#34;。

然后,我需要修改我的工具提示代码,从HTML中获取当前的名称&#34; Washer&#34;现在用两个数据库列交叉检查,而不是一个:&#34;名称&#34;和&#34; beta-name&#34;。所以当它拿起&#34; Washer&#34;从HTML中,它将检查SQL并查看&#34; Washer2&#34;有一个&#34; beta-name&#34; &#34;洗衣机&#34;并提取信息。

这是一种新的保存方法,我试图通过名称更新来防止破坏旧的工具提示。

我基本上需要编辑JQuery / JS工具提示文件。  此文件是由已离开项目的其他人创建的,遗憾的是代码已移交。

我认为我缩小了需要更改的代码行:

var name = jQuery(e.currentTarget).data("name"),
host = globalHost + "/pics/",
url = globalHost + '/getitemid.php?name=' + encodeURI(name) + '&callback=?';

在这种情况下阵列可能会起作用吗?

    var namesarray = {data("name"), data("beta_name")};
    var name = jQuery(e.currentTarget).data(namesarray),
        host = globalHost + "/pics/",
        url = globalHost + '/getitemid.php?name=' + encodeURI(name) + '&callback=?';

1 个答案:

答案 0 :(得分:0)

此问题的首选修复方法是向表中添加主键(如果尚未存在),然后在元素中引用该ID而不是名称字段。像这样:

+----+--------+--------------+
| ID |  Name  |     Desc     |
+----+--------+--------------+
|  1 | Washer | I'm a washer |
|  2 | Dryer  | I'm a dryer  |
+----+--------+--------------+

<a data-id="1">Washer</a>

这样,您可以随时更改名称,不会有任何中断。

如果由于某种原因这不是一个选项,我认为您需要更改SQL查询(而不是添加更多数据属性)。我假设你有一个看起来像这样的查询:

select Desc
from items
where Name = @name

您需要将其更改为:

select Desc
from items
where Name = @name or beta-name = @name

这当然假设您没有一个名称为“Washer”的项目和一个名称为“Washer”的不同项目(因为那时查询将返回两行,因为它不知道你的意思是。)