Javascript 使用JQuery将onClick分配给动态按钮
我有一个表,我在其中每行动态创建一个按钮。因此,如果我们有3行,我们将在每行的第3列有3个按钮 我面临着两个层面的问题: i) 分配单个函数,该函数将在所有按钮的“onClick”处调用。 ii)读取已按下按钮对应列的值, 例如:假设我们有3列,我按下第2行、第3列的按钮,我需要读取第2行、第1列和第2列的值 整个过程是动态构建的 这是表格:Javascript 使用JQuery将onClick分配给动态按钮,javascript,jquery,html,Javascript,Jquery,Html,我有一个表,我在其中每行动态创建一个按钮。因此,如果我们有3行,我们将在每行的第3列有3个按钮 我面临着两个层面的问题: i) 分配单个函数,该函数将在所有按钮的“onClick”处调用。 ii)读取已按下按钮对应列的值, 例如:假设我们有3列,我按下第2行、第3列的按钮,我需要读取第2行、第1列和第2列的值 整个过程是动态构建的 这是表格: <body> <div id="up"></div> <table id = "tab" sty
<body>
<div id="up"></div>
<table id = "tab" style="width:500px">
<tr>
<th>Date/Time</th>
<th>Session Activity</th>
<th>Action</th>
</tr>
<?php
$uid = $_SESSION["uid"];
$client = $_SESSION["Client"];
$con = mysqli_connect('localhost', 'root', '12345', 'MyDB');
if (mysqli_connect_errno()){
echo "<option value='".'0'."'>".'Connection Error'."</option>";
exit();
}else{
$res=mysqli_query($con, "select * from TL_Session_Notes Where Uid = '".$uid."' AND CName = '".$client."'");
while($row=mysqli_fetch_array($res))
{
echo "<tr><td>".$row['Sn_date'].'/'.$row['Sn_time']."</td><td>".$row['Sn_activity']."</td>".
"<td id = '"."openBtns"."'><input type='"."button"."' class = '"."btns"."' value = '"."Open Session Note"."' action = '"."OpenSession()"."'/>"."</td></tr>";
}
}
mysqli_close($con);
?>
</table>
<div id="down"></div>
</body>
日期/时间
会话活动
行动
您的td.openBtns
也会动态添加。您必须使用静态/非动态选择器
看起来#tab
就是您想要的
$("#tab").on('click', '.btns', function() {
OpenSession();
});
或尝试
$(document).on('click', '.btns', function() {
OpenSession();
});
您的td.openBtns
也会动态添加。您必须使用静态/非动态选择器
看起来#tab
就是您想要的
$("#tab").on('click', '.btns', function() {
OpenSession();
});
或尝试
$(document).on('click', '.btns', function() {
OpenSession();
});
选择器$(“OpenBTN”)
正在获取所有
元素
由于您有一个id为“openBtns”的表,因此需要在id之前添加
$("#openBtns").on('click', '.btns', function() {
OpenSession();
});
选择器$(“OpenBTN”)
正在获取所有
元素
由于您有一个id为“openBtns”的表,因此需要在id之前添加
$("#openBtns").on('click', '.btns', function() {
OpenSession();
});
尝试:
<html>
<head>
<script type="text/javascript">
function OpenSession(date, time, activity)
{
/* here we can do something creative with the arguments date, time and activity */
window.location.replace('Sessions.php');
}
</script>
</head>
<body>
<div id="up"></div>
<table id="tab" style="width:500px">
<tr>
<th>Date/Time</th>
<th>Session Activity</th>
<th>Action</th>
</tr>
<?php
output_rows();
?>
</table>
<div id="down"></div>
</body>
<?php
function output_rows()
{
$uid = $_SESSION["uid"];
$client = $_SESSION["Client"];
$con = mysqli_connect('localhost', 'root', '12345', 'MyDB');
if (mysqli_connect_errno()){
echo "<option value='0'>Connection Error</option>";
}else{
$name = mysql_escape_string($name);
$client = mysql_escape_string($client);
$res=mysqli_query($con, "select * from TL_Session_Notes Where Uid='$uid' AND CName='$client'");
while($row=mysqli_fetch_array($res))
{
$date = $row['Sn_date'];
$time = $row['Sn_time'];
$activity = $row['Sn_activity'];
echo "<tr>";
echo "<td>$date/$time</td><td>$activity</td>";
echo "<td><input type='button' class='btns' value='Open Session Note' onclick='OpenSession(\"$date\", \"$time\", \"$activity\")' /></td>";
echo "</tr>";
}
}
mysqli_close($con);
}
?>
</body>
</html>
函数OpenSession(日期、时间、活动)
{
/*在这里,我们可以对日期、时间和活动进行一些创造性的讨论*/
replace('Sessions.php');
}
日期/时间
会话活动
行动
尝试:
<html>
<head>
<script type="text/javascript">
function OpenSession(date, time, activity)
{
/* here we can do something creative with the arguments date, time and activity */
window.location.replace('Sessions.php');
}
</script>
</head>
<body>
<div id="up"></div>
<table id="tab" style="width:500px">
<tr>
<th>Date/Time</th>
<th>Session Activity</th>
<th>Action</th>
</tr>
<?php
output_rows();
?>
</table>
<div id="down"></div>
</body>
<?php
function output_rows()
{
$uid = $_SESSION["uid"];
$client = $_SESSION["Client"];
$con = mysqli_connect('localhost', 'root', '12345', 'MyDB');
if (mysqli_connect_errno()){
echo "<option value='0'>Connection Error</option>";
}else{
$name = mysql_escape_string($name);
$client = mysql_escape_string($client);
$res=mysqli_query($con, "select * from TL_Session_Notes Where Uid='$uid' AND CName='$client'");
while($row=mysqli_fetch_array($res))
{
$date = $row['Sn_date'];
$time = $row['Sn_time'];
$activity = $row['Sn_activity'];
echo "<tr>";
echo "<td>$date/$time</td><td>$activity</td>";
echo "<td><input type='button' class='btns' value='Open Session Note' onclick='OpenSession(\"$date\", \"$time\", \"$activity\")' /></td>";
echo "</tr>";
}
}
mysqli_close($con);
}
?>
</body>
</html>
函数OpenSession(日期、时间、活动)
{
/*在这里,我们可以对日期、时间和活动进行一些创造性的讨论*/
replace('Sessions.php');
}
日期/时间
会话活动
行动
这应该解决您请求的第二部分
$('.openBtns')。在('click','.btns',函数(){
var td1=$(this).closest('td').prev('td').text();
var td2=$(this).closest('td').prev('td').prev('td').text()
警报(td1+“”+td2);
});代码>这应该解决您请求的第二部分
$('.openBtns')。在('click','.btns',函数(){
var td1=$(this).closest('td').prev('td').text();
var td2=$(this).closest('td').prev('td').prev('td').text()
警报(td1+“”+td2);
});
@Priyabrata-您可以创建一个JSFIDLE来重现该问题吗?@Priyabrata-使用$(文档)
。。请参阅更新的答案。很难使用JSFIDLE,因为我需要使用数据动态创建行。@Priyabrata-您可以创建一个JSFIDLE来重现问题吗?@Priyabrata-使用$(文档)
。。请参阅更新的答案。很难使用JSFIDLE,因为我需要使用数据动态创建行。您有多个id为openBtns的元素吗?此外,您正在执行不必要的字符串连接(过度使用.operator)。动态创建元素时,是否可以为不同的元素使用不同的id?您不需要这些id:s,我想您有多个id为OpenBTN的元素?另外,您正在进行不必要的字符串连接(过度使用.operator)。动态创建元素时,是否可以为不同的元素使用不同的id?您不需要这些id:s,我想是的,那里没有任何$name参数。其余的都好。谢谢:)是的,那里没有任何$name参数。其余的都好。谢谢:)