我有一个问题,因为我无法在视频src和图像src上调用要检索的数据。这是我的代码。图片和视频src没有显示。 有人可以给我正确的语法吗?谢谢
几个问题 ,我需要连接一些内容吗?我的row ['']是否正确连接?
但是这里的主要问题是我无法单击或更改任何检索或存储的视频。如何修复onClick
?谢谢
<?php
echo '<li>
<a href="javascript:void();" onClick="document.getElementById("vid_frame").src="images/promvid/pal/<?php row['videos'] ?>">
<span class="vid-thumb">
<img width=72 src="images/promvid/philippines.jpg"/<?php row['image'] ?>
</span>
<div class="desc">Philippines<?php row['title'] ?>
</div></a></li>';
?>
我的错误
解析错误:语法错误,意外的“视频”(T_STRING),预期 ','或';
答案 0 :(得分:1)
您不能在PHP标签内使用PHP标签,而需要使用echo将字符串部分与变量连接起来。
<?php
echo '<li>
<a href="javascript:void();" onClick="document.getElementById("vid_frame").src="images/promvid/pal/'.$row['videos'].'">
<span class="vid-thumb">
<img width=72 src="images/promvid/philippines.jpg"/'.$row['image'].' </span>
<div class="desc">Philippines'.$row['title'].' </div></a></li>';
?>
答案 1 :(得分:0)
下面的代码可能会对您有所帮助。
在php中,我们需要使用$
echo '<li>
<a href="javascript:void();"
onClick="document.getElementById("vid_frame").src="images/promvid/pal/"'.$row["videos"].'>
<span class="vid-thumb">
<img width=72 src="images/promvid/philippines.jpg/"'.$row['image'].'>
</span>
<div class="desc">Philippines'.$row['title'].'</div>
</a>
</li>';
答案 2 :(得分:0)
您正在使用错误做法,并遇到错误。您不能在<?php ?>
标签中包含<?php ?>
标签。
编写干净的代码并养成良好的习惯。
PHP是一种嵌入式语言。不要尝试通过PHP echo生成所有HTML。将平安的PHP代码嵌入到周围的HTML模板中。您甚至可以在一个循环构造块中关闭PHP标记。
除非您使用开放式标签<?=$variable?>
,否则不会输出单独位于PHP标记中的变量。短开标签不应使用,因为大多数服务器配置均未启用它们。
内联JavaScript很老,被认为是不好的做法。首先,有一天内联内联处理程序可能会从标准中删除。请改用事件监听器。
内联元素div
中有块元素a
。这仅在HTML5中有效。通过在文件的第一行之前加上<!DOCTYPE html>
,确保您的文件类型明确为HTML5。
如果href
属性应为#
或javascript:void(0);
,则什么都不做的链接已被广泛讨论。我倾向于后者。 void
是关键字,但是函数样式还可以。不论代码样式如何,都必须有一个参数。
preventDefault()
方法,这将阻止href
操作,即位置更改。PHP网站:
<head>
<title>Non-Empty Title</title>
<body>
<ul>
<?php
// fake query result
$rows =
[
[
'videos' => 'phillippines.mpeg4',
'image' => 'philippines.jpg' ,
'title' => 'Philippines' ,
'noscript-frame-page' => 'philippines.html',
],
[
'videos' => 'usa.mpeg4',
'image' => 'usa.jpg' ,
'title' => 'USA' ,
'noscript-frame-page' => 'usa.html',
]
];
// fake fetch row
foreach ($rows as $row)
{
?>
<li>
<a class="video-ref"
href="<?php echo $row['noscript-frame-page'];?>"
data-video-src="images/promvid/pal/<?php echo $row['videos'];?>"
target="video-frame"
>
<span class="vid-thumb">
<img width=72 src="images/promvid/"<?php echo $row['image'];?>
</span>
<div class="desc"><?php echo $row['title'];?>
</div>
</a>
</li>
<?php
}
?>
</ul>
<noscript>
<iframe id="video-frame" name="video-frame" src="start-video-page.html"></iframe>
</noscript>
<div id="debug">DEBUG OUTPUT</div>
<script src="my-script.js"></script>
my-script.js
document.addEventListener('DOMContentLoaded', evt =>
{
"use strict";
const VideoLinkListener = evt =>
{
const videoSrc = evt.currentTarget.getAttribute('data-video-src');
if(videoSrc)
{
document.getElementById('debug').innerHTML = videoSrc; // document.getElementById('vid_frame').src=videoSrc;
// do not change location to link's href
evt.preventDefault();
}
};
document.querySelectorAll('a.video-ref').forEach( link => link.addEventListener('click', VideoLinkListener) );
});