我知道这个问题很多,但我还没能解决我的问题。
我有一个由php驱动的网站,其中包含视频。不同的视频有自己的网址,例如 index.php?id = 1 。对于Facebook分享,我希望每个视频/网址都有更新的元标记。
每个视频的信息(标题,说明等)都存储在数据库中,我已成功将该信息转发到我的网站。
这是将变量从javascript传递给PHP的脚本:
<script>
var video;
var URL = document.location;
function setVideo(src){
video = src;
$(document).ready(function(){
$.ajax({
url: URL,
type: 'GET',
data: {
videoPHP: video,
},
success: function(data) {
// This prints the php result to html
$('#headerFromFile').html(data)
}
});
});
}
</script>
这是PHP:
if (isset($_GET['videoPHP'])) {
$videoID = $_GET['videoPHP'];
// SQL query
$sql = "SELECT * FROM Videos WHERE ID='$videoID'";
$result = $connect->query($sql);
$row = $result->fetch_assoc();
?>
<h1><?php echo $row['Header'];?></h1>
<p><?php echo $row['Description'];?></p>
<?php
通过这样做,我能够将视频的标题和描述回显到我的html文档中的div #headerFromFile 。
问题是,我希望将此信息存储到 meta property =“og:title”和 meta property =“og:description”当前网址。
非常感谢任何帮助。
答案 0 :(得分:0)
在ajax运行之前,将元标记写入dom。我建议您在页面加载之前获取数据库的数据,并将变量放入元标记中。
但是,如果我理解正确,您的内容可能会在加载dom后发生更改,并且在发布到Facebook时会读取旧的元数据。我不知道这是否会有所帮助,因为Facebook可能也没有获得更新的元标记,但是尝试改变这样的元标记......
$('meta[name=description]').remove();
$('head').append( "<meta name='description' content='Video Title'>" );