1

我有一个表格,显示各个电子邮件模板的名称。电子邮件模板正在一个mysql_fetch_assoc()while 循环中填充。伪代码看起来像这样。

<table>
<?php 
$query = "......";
$example = mysql_query($query);
while(($var = mysql_fetch_assoc($example)))
{
    echo '
    <tr><td>'.$var[''].'</td></tr>
    ';
}
?>
</table>

目前,有人会注意到,如果我有一个<td>ID,则该 ID 将不是唯一的。因此,在 javascript 中提取值几乎是灾难性的。

我目前的想法涉及使用递增的 php 变量,并将其用作 id 名称。

<table>
<?php 
$query = "......";
$somevar = "id"; //incrementing variable
$inc = 0;
$example = mysql_query($query);
while(($var = mysql_fetch_assoc($example)))
{
    $id = $somevar."_".$inc;
    echo '
    <tr><td id="'.$id.'">'.$var[''].'</td></tr> //<td> id theoretically should be unique
    ';
     ++$inc;
}
?>
</table>

现在,我仍然在关注 php 和 javascript。我想要做的是点击一个电子邮件模板名称,获取值(在这种情况下是电子邮件模板名称),然后使用 AJAX 将其传递到另一个页面。我可以覆盖 AJAX。我想知道我当前的 COA 是否朝着正确的方向前进,或者我是否应该尝试其他方法。另外,关于如何使用 Javascript 获得价值的任何想法?

4

2 回答 2

2

您根本不需要 ID 即可从单击的表格行中获取内容:

function getName(e){
  var cell = e.target;
  alert(cell.innerHTML);
}


window.onload = function(){
  var cells = document.getElementsByTagName("td");
  for(var i=0, len=cells.length; i<len; i++){
    cells[i].onclick = getName;
  }
};

看到它在行动

如果您决定使用 ID,则需要使用对当前 HTML 文档和由 AJAX 调用的服务器端代码都有意义的唯一标识符,因此显而易见的候选者是 DB 表主键。

于 2013-08-09T12:49:45.423 回答
0

$somevar是一个整数。您正在使用它来生成唯一 ID,但是,ID不能以数字开头。我建议为每个 ID 添加一个前缀。( <td id="id_'.$somevar.'">)

<td id="1">....</td>    <!-- wrong -->
<td id="id_1">....</td> <!-- right -->

至于你的问题,是的。解决此问题后,您将朝着正确的方向前进。

看一下document.getElementById()

编辑:OP 更新了代码,ID 部分变得无关紧要。

于 2013-08-09T12:36:41.237 回答