标记具有唯一ID的按钮,并在单击按钮时标识此ID值

时间:2012-11-22 08:01:23

标签: php javascript button

我们有基于php + mysql的html站点。在页面上,有表(4行和1列),其中包含有关用户的信息。每个表格单元格都有用户名和相应的按钮。使用SELECT语句填充到表的用户名。

$q = "select usr.user_id, usr.nickname from users usr";
$r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc));

然后将信息get填入表格

echo "<table border cellpadding=1>"; 
while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)){ 
    echo "<tr>";
    echo "<td>" . $row['nickname'] . "</td> <form name ='form_type' method ='GET'><input type = 'button' name = " . $row['user_id'] . " value = 'ButtonValue' id = 'ButtonId'  onclick='processFormData();'></form></td>"; 
}
echo "</table>";

获取ButtonName的Javascript

<script type="text/javascript">
    function processFormData() {
        var name_element = document.getElementById('ButtonId');
        alert(name_element.name);
    }

警报正在用于测试。 我的目标是在点击按钮时获取user_id值。目前我正在为所有按钮获得相同的user_id(首先找到)。

3 个答案:

答案 0 :(得分:2)

试试这个:

    echo "<td>" . $row['nickname'] . "</td> <form name ='form_type' method ='GET'><input type = 'button' name = " . $row['user_id'] . " value = 'ButtonValue' id = 'ButtonId'  onclick='processFormData(this);'></form></td>"; 

而且:

function processFormData(name_element) {
    alert(name_element.name);
}

答案 1 :(得分:1)

您必须将User ID传递给JavaScript这样的功能,

<input type = 'button' name = " . $row['user_id'] . " value = 'ButtonValue' id = 'ButtonId'  onclick='processFormData('<?php echo $row['user_id']; ?>');'>

Script中,您必须更改此功能链接

<script type="text/javascript">
function processFormData(uid) {
    alert(uid);
}
</script>

答案 2 :(得分:0)

ButtonID的ID在每个按钮上。这意味着它们都不是唯一的。因此,您的脚本开始查找,并且每次都提供相同的脚本。

您可以切换nameid属性(您需要一些文字,因此ID不仅仅是一个数字,这是不允许的):

<input type='button' id='btn".$row['user_id']."' value='ButtonValue' name='ButtonId'  onclick='processFormData();'>

然后提醒(新的,唯一的)ID:

alert(name_element.id);

但是现在,由于您的ID已更改,您的Javascript代码将不再找到ButtonId。因此,您需要将按钮对象直接传递给Javascript。它看起来像这样:

HTML

<input type='button' id='btn".$row['user_id']."' value='ButtonValue'  onclick='processFormData(this);'>

JS

function processFormData(element) {
    alert(element.id);
}