2

我们有基于 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));

然后将信息填充到表中

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 (首先找到)。

4

3 回答 3

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);
}
于 2012-11-22T08:03:36.183 回答
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>
于 2012-11-22T08:06:11.337 回答
0

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

您可以只切换nameandid属性(您需要一些文本,因此 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);
}
于 2012-11-22T08:03:52.940 回答