[英]Javascript Iteration of table
请帮忙!
我正在尝试从表中获取行值的单个值。 我使用Javascript在单击表中值旁边的按钮时调用该函数时显示该值。
这是表的样子:
Name_1 737 <button>Run JS</button>
Name_2 729 <button>Run JS</button>
Name_3 730 <button>Run JS</button>
这是文件:
<table>
<?
$sql = mysql_query("SELECT * FROM clients WHERE id = '1'");
while($row = mysql_fetch_array($sql)){
$name = $row['client_name'];
$c_id = $row['client_id'];
$id_array[] = $c_id;
echo '<table id="myTable">
<tr>
<td>'.$name.'</td>
<td class="client_id">'.$c_id.'</td>
<td><button onclick="js_function()">Run JS</button></td>
</tr>
</table>';
}
?>
</table>
<script>
var c_id = document.getElementsByClassName("client_id");
function js_function() {
for(var i = 0; i < c_id.length; ++i){
var client_id = c_id[i].innerHTML;
}
document.write(client_id);
}
</script>
当我单击表中显示的任何按钮时,我总是以730结尾,该值与c_id [2] .innerHTML相同;
如果您只需要单击按钮时的客户端ID,为什么在渲染时不将客户端ID传递给js函数本身呢?
<td><button onclick="js_function("'.$c_id.'")">Run JS</button></td>
在js函数中,您可以通过单击按钮直接获取它。
function js_function(clientId) {
alert(clientId);
}
向js_function()
添加参数以标识行:
$i = 0;
while($row = mysql_fetch_array($sql)){
$name = $row['client_name'];
$c_id = $row['client_id'];
$id_array[] = $c_id;
echo '
<table id="myTable">
<tr>
<td>'.$name.'</td>
<td class="client_id" id="client_id_'.$i'">'.$c_id.'</td>
<td><button onclick="js_function('.$i.')">Run JS</button></td>
</tr>
</table>';
}
JS:
function js_function(i) {
var c_id = document.getElementById('client_id_' + i);
var client_id = c_id.innerHTML;
document.write(client_id);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.