Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在一行中存储字段Id?_Php_Jquery_Mysql_Html_Ajax - Fatal编程技术网

Php 如何在一行中存储字段Id?

Php 如何在一行中存储字段Id?,php,jquery,mysql,html,ajax,Php,Jquery,Mysql,Html,Ajax,我使用jquery和大量ajax请求编写了一个网站,以获取表的数据,并在服务器端使用PHP/MySql请求修改数据 目前,我使用id属性存储表字段的id(它是一个自动递增的int值)。 而且效果很好。 但我最近了解到id应该是唯一的(并以字母开头…。 我有不同的表,它们可能具有相同的id值(对于不同的sql表) 那么我不是html(也不是xhtml)兼容者 如何更正代码 使用jQuery的函数 id为值(3)的隐藏html元素 其他解决方案 其他信息: 我已经编写了一个小部件来管理我的表。

我使用jquery和大量ajax请求编写了一个网站,以获取表的数据,并在服务器端使用PHP/MySql请求修改数据

目前,我使用id属性存储表字段的id(它是一个自动递增的int值)。
而且效果很好。

但我最近了解到id应该是唯一的(并以字母开头…。
我有不同的表,它们可能具有相同的id值(对于不同的sql表) 那么我不是html(也不是xhtml)兼容者

如何更正代码

  • 使用jQuery的函数
  • id为值(
    3
    )的隐藏html元素
  • 其他解决方案

其他信息:
我已经编写了一个小部件来管理我的表。
要添加新行,我需要执行以下操作:

    row = $('<div class="row" id="'+item.id+'"/>');
    [...] // I add fields to my row
    row.appendTo(tableData);// tableData is the html element where rows are
如果您能够使用html 5
data-*
属性,请查看使用html 5
data-*
属性。jQuery 1.4.3将自动使用这些数据属性,并将它们放置在元素上的
.data()
集合中

例如:

<table>
  <tr data-rowId="1">

  </tr>
</table>
而不是在您的
数据中()
var row=$(“tr:first”).data(“row”)

您可以引用
行.Id
行.Name

您可以在Id前面加上表名:

<div id="mytable_1234"></div>

如果已经在表名中使用下划线,则可以使用任何其他分隔符。

我认为。。。我理解你的问题-多个数据表,都有自动增量ID

我的解决方案是在ID前面加上一个字母(就像你说的)来区分它

例如,“汽车”的数据集,我会:

<table>
<tr id="cars_1">
...
</tr>
<tr id="cars_2">
...
</tr>
<tr id="cars_3">
...
</tr>
</table>
<table>
<tr id="bike_1">
...
</tr>
<tr id="bike_2">
...
</tr>
<tr id="bike_3">
...
</tr>
</table>

...
...
...
稍后,如果您有另一张桌子,自行车,您将执行以下操作:

<table>
<tr id="cars_1">
...
</tr>
<tr id="cars_2">
...
</tr>
<tr id="cars_3">
...
</tr>
</table>
<table>
<tr id="bike_1">
...
</tr>
<tr id="bike_2">
...
</tr>
<tr id="bike_3">
...
</tr>
</table>

...
...
...
您的最终结果将是唯一的ID,同时记住ID db值,因此您将进行一次简单的检查(如果是cars,则执行此操作,等等),然后将前缀(cars与ID 1分开,您将使用类似PHP
expolode()
fn的代码)

希望能澄清这一点,并且我理解您的问题。

您也可以使用


将数据存储在html中,而不是使用
id
使用
数据id
并使用
.data('id')
(在该元素上)通过jQuery检索数据,这是非常棒的。我想这会有助于提供一些“错误”的html代码。好的,我已经添加了一些信息,我认为他可能指的是记录(行)id, fyi@Jakub我将我的示例放在
div
元素中,但我认为OP会理解他可以在
tr
或任何其他元素中使用它;)问题中粘贴的代码也使用了div,所以我没有错…谢谢你的回答,但我将使用.data()。在我看来,它看起来更干净。@Benoît data()的答案是一个很好的解决方案,但由于我不能使用HTML5,我必须坚持我的解决方案。。。但我也认为使用HTML5数据域更强大。为什么HTML5不能在任何地方使用?(这可能是我的网站的限制吗?)看起来很棒!它与IE兼容吗?(IE6?)。我不喜欢IE,但它是被要求的…是的,它只是jQuery的一部分,我在项目中使用过很多,在IE6和所有其他主流浏览器中都非常有效。+1回答很好,但我认为重要的是要注意这是html5,而不是xhtml兼容。好的,我将使用这个解决方案。。。我还将存储其他数据,这些数据有时存储在隐藏的span元素中!非常感谢。看来标准的jQuery函数解决了我的问题,我不喜欢使用外部插件。个人选择。。我也喜欢这种在HTML中存储数据的方式
<table>
<tr id="bike_1">
...
</tr>
<tr id="bike_2">
...
</tr>
<tr id="bike_3">
...
</tr>
</table>