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はすべてのボタンにあります。これは、それらのどれもが一意ではないことを意味します。したがって、スクリプトは検索を開始し、毎回同じものを提供します。

nameとの属性を切り替えるだけでid済みます (テキストが必要になるため、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 に答える