获得价值需要帮助

时间:2013-08-09 12:28:59

标签: javascript php html-table

我有一个表格,显示各个电子邮件模板的名称。电子邮件模板正在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。我想知道我现在的C.O.A.朝着正确的方向前进,或者我应该尝试别的东西。另外,关于如何使用Javascript获取值的任何想法?

2 个答案:

答案 0 :(得分: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;
  }
};

See it in action

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

答案 1 :(得分:0)

$somevar是一个整数。您已使用此功能生成唯一ID,但ID 无法以数字开头。我建议为每个ID添加一个前缀。 (<td id="id_'.$somevar.'">

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

关于你的问题,是的。当这个问题得到解决时,你正朝着正确的方向前进。

查看document.getElementById()

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