【问题标题】:Mark buttons with unique ID and identify this ID value upon button clicked使用唯一 ID 标记按钮并在单击按钮时识别此 ID 值
【发布时间】:2012-11-22 08:01:23
【问题描述】:

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

然后将 info 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(首先找到)。

【问题讨论】:

    标签: php javascript button


    【解决方案1】:

    试试这个:

        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);
    }
    

    【讨论】:

    • 非常感谢您的回复。它工作得很好,但我遇到了另一个问题。单击按钮后,我必须调用特定的 UPDATE 语句,该语句将使用 $row['user_id'] 变量作为参数。是否可以使用上述解决方案(将变量传递给 JS)来做到这一点?
    【解决方案2】:

    你必须像这样将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>
    

    【讨论】:

    • 这仍然行不通,因为this.value 始终是ButtonValue
    • 请检查编辑后的答案...它应该可以工作...您必须在 javascript 中将用户 ID 作为参数传递。
    【解决方案3】:

    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);
    }
    

    【讨论】:

      猜你喜欢
      • 2017-11-16
      • 2019-01-23
      • 2021-02-12
      • 2021-04-28
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 2018-01-25
      • 2023-04-06
      相关资源
      最近更新 更多