我有下表:
foreach ($forwards as $data):
?>
<tr style="cursor: pointer" class="main_row">
<td><?php echo $data['Offer']['id']; ?> </td>
<td><?php echo $data['Offer']['name'];?> </td>
<td><?php echo round($data['Stat']['ltr'],2)."%"; ?></td>
<td><?php echo round($data['Stat']['cpc'],2)."%"; ?></td>
<td><?php echo $data['Category']['name']?></td>
<td><?php echo $data['Country']['name'] ?></td>
</tr>
<?php
endforeach; ?>
现在的想法是,当你点击其中一个main_row
时,它应该重定向到一个新的网址。问题是url包含一个id,例如url看起来像www.example.com/details/2
,其中2是id。
此id与存储在php变量中的所有其他数据类似:$data['Offer']['id'];
现在我的问题如何使用php和javascript重定向?有工作吗?
请注意我完全清楚php i服务器端和javascript不是。正因为如此,我才问这个问题。
答案 0 :(得分:2)
<table>
<?php foreach ($forwards as $data): ?>
<tr data-link="http://www.example.com/details/<?php echo $data['Offer']['id']; ?>">
<td><?php echo $data['Offer']['id']; ?> </td>
<td><?php echo $data['Offer']['name'];?> </td>
<td><?php echo round($data['Stat']['ltr'],2)."%"; ?></td>
<td><?php echo round($data['Stat']['cpc'],2)."%"; ?></td>
<td><?php echo $data['Category']['name']?></td>
<td><?php echo $data['Country']['name'] ?></td>
</tr>
<?php endforeach; ?>
</table>
<script>
$('table tr').click(function(){
document.location.href = $(this).data('link');
});
</script>
如果你使用jQuery。
答案 1 :(得分:1)
如果您使用jQuery,请执行以下操作:
$('.main_row').click(function(){
window.location.href = "YOUR_URL"+$(this).attr('id');
});
将行的html修改为:
<tr style="cursor: pointer" class="main_row" id="<?php echo $id ?>">
这种方式 - 只要您点击该行,它就会将行ID附加到网址并重定向到那里。
答案 2 :(得分:1)
您可以从行的第一列获取ID:
$(".main_row").click(function() {
var id = $(this).find("td:first-child").text();
window.location.href = 'www.example.com/details/' + id;
});
答案 3 :(得分:1)
如果我理解你的问题是正确的,那么你不是在寻找重定向。要在php中重定向,必须在向浏览器回显任何内容之前完成。
因为您想在渲染显示后“重定向”,所以您应该使用锚点。
<td><a href="www.example.com/details/<?php echo $data['Offer']['id']; ?>">
<?php echo $data['Offer']['id']; ?>
</a></td>
锚点会将浏览器定向到href网址。