我有一个表格,显示各个电子邮件模板的名称。电子邮件模板正在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获取值的任何想法?
答案 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;
}
};
如果您决定使用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 -->
关于你的问题,是的。当这个问题得到解决时,你正朝着正确的方向前进。
编辑:OP更新了代码,ID部分变得无关紧要。