单个id在while循环中同时发出警报

single id alerting same time in a while loop

本文关键字:id while 循环 单个      更新时间:2023-09-26

我有一个表,从那里我正在抓取活动,并在表中显示…这样的

<table width="1000px;" style="border:0px;" >
    <tr>
        <?php
            $sql_activities="select * from tb_activities";
            $query_activities=mysql_query($sql_activities);
            while($row_activities=mysql_fetch_array($query_activities))
            {
        ?>
        <td width="50">
            <input type="radio" value="<?php echo $row_activities['activity_name']; ?>" name="activities" onclick="hi() " id="activities" /><?php echo " ".$row_activities["activity_name"]; ?></td>
            <?php    
            } 
            ?>
    </tr>
</table>
现在我已经将它应用于一个单选按钮的onclick事件,该函数的脚本是:
<script type="text/javascript">
function hi()
{
    a = document.getElementById("activities").value;
    alert(a);
}
</script>

我想提醒所选活动的名称,但当我单击任何活动时,它显示相同的。第一个活动。即使我点击了任何其他活动…有人能帮帮我吗?

你应该做的是改变这个:

onclick="hi()"

:

onclick="hi(this);

那么你的函数将是:

function hi(who) {
    var a = who.value;
    alert(a);
}

PHP方面的变化:

<td width="50"><input type="radio" value="<?php echo $row_activities['activity_name']; ?>" name="activities" onclick="hi() " id="activities" /><?php echo " ".$row_activities["activity_name"]; ?></td>

To:(你需要输入/单选按钮上的唯一id来动态生成&发送到JS)

<?php $i = 1; ?>
<td width="50"><input type="radio" value="<?php echo $row_activities['activity_name']; ?>" name="<?php echo $row_activities['activity_name'].$i; ?>" id ="<?php echo $row_activities['activity_name'].$i; ?>" onclick="hi("<?php echo $row_activities['activity_name'].$i; ?> ")" /></td>
<?php $i++; ?>

Javascript改成:

function hi(elementID) {
    var value = document.getElementById(elementID).value;
    alert(value);
}

代码可能有一些转义错误,但从逻辑上讲,这应该让你知道如何做,希望有帮助。