You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击MySQL视频列表表格行后,如何跳转至新页面播放大尺寸对应视频?

实现表格行点击跳转播放大尺寸视频的方案

我来帮你搞定这个需求!咱们分两步走:先修改现有的视频列表页面,让表格行可点击并传递视频参数;再创建一个详情页面来展示大尺寸的视频和完整信息。

第一步:修改视频列表页面的代码

你需要给表格的每一行添加点击事件,点击后跳转到详情页,并把对应的videoRef作为参数传过去。这里我用了内联的onclick事件(简单直接),也给行加了鼠标指针样式提升用户体验:

<?php
$result=mysqli_query($link, "SELECT * FROM videos") or die( mysqli_error($link) );
echo "<table border=0><tr><th>Title</th><th>Creator</th><th>Upload Date</th><th>Difficulty</th><th>Video</th></tr>";
while ($data = mysqli_fetch_array($result) ){
    // 给每行添加点击跳转逻辑,用urlencode处理特殊字符避免出错
    $detailUrl = "video-detail.php?ref=" . urlencode($data['videoRef']);
    echo "<tr onclick=\"window.location.href='$detailUrl'\" style=\"cursor: pointer;\">";
    echo "<td>" . $data['Title'] . "</td>";
    echo "<td>" . $data['Creator'] . "</td>";
    echo "<td>" . $data['Upload Date'] . "</td>";
    echo "<td>" . $data['Difficulty'] . "</td>";
    echo "<td>" . '<iframe width="350" height="200" src="https://www.youtube.com/embed/'.($data['videoRef']).'" allowfullscreen> </iframe>' . "</td>";
    echo "</tr>";
}
echo "</table>";
?>

第二步:创建视频详情页面(video-detail.php)

这个页面负责接收传递过来的videoRef参数,从数据库查询对应视频的完整信息,然后展示大尺寸的YouTube视频。重点提醒:一定要用预处理语句防止SQL注入,保障数据安全:

<?php
// 这里需要和列表页一样的数据库连接代码,替换成你的数据库信息
$link = mysqli_connect("localhost", "your_username", "your_password", "your_db");
if (!$link) {
    die("Connection failed: " . mysqli_connect_error());
}

// 检查是否有合法的videoRef参数
if(isset($_GET['ref']) && !empty(trim($_GET['ref']))){
    $videoRef = trim($_GET['ref']);
    
    // 使用预处理语句查询,避免SQL注入风险
    $stmt = mysqli_prepare($link, "SELECT * FROM videos WHERE videoRef = ?");
    mysqli_stmt_bind_param($stmt, "s", $videoRef);
    mysqli_stmt_execute($stmt);
    $result = mysqli_stmt_get_result($stmt);
    $video = mysqli_fetch_array($result);
    
    if($video){
        // 展示视频详情和大尺寸播放器
        echo "<div style=\"max-width: 1200px; margin: 0 auto; padding: 20px;\">";
        echo "<h1>" . htmlspecialchars($video['Title']) . "</h1>";
        echo "<div style=\"margin: 15px 0;\">";
        echo "<p><strong>Creator:</strong> " . htmlspecialchars($video['Creator']) . "</p>";
        echo "<p><strong>Upload Date:</strong> " . htmlspecialchars($video['Upload Date']) . "</p>";
        echo "<p><strong>Difficulty:</strong> " . htmlspecialchars($video['Difficulty']) . "</p>";
        echo "</div>";
        // 大尺寸播放器,用16:9标准宽高比适配观看体验
        echo '<iframe width="853" height="480" src="https://www.youtube.com/embed/'.htmlspecialchars($video['videoRef']).'" allowfullscreen style="border: none;"></iframe>';
        echo "</div>";
    } else {
        echo "<p style=\"text-align: center; margin-top: 50px;\">Sorry, this video doesn't exist.</p>";
    }
    
    mysqli_stmt_close($stmt);
} else {
    echo "<p style=\"text-align: center; margin-top: 50px;\">Invalid video request.</p>";
}

mysqli_close($link);
?>

额外的优化小建议

  • 如果你觉得内联onclick不够优雅,可以用JavaScript事件委托来处理表格行的点击事件,代码会更整洁。
  • 给详情页的播放器加响应式样式,比如width: 100%; height: auto;,让它能适配不同屏幕尺寸。
  • 给列表页的表格行加hover效果,比如tr:hover { background-color: #f5f5f5; },让用户更直观地知道这行是可点击的。

内容的提问来源于stack exchange,提问作者Andrew C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 04:42:52