繁体   English   中英

运行PHP函数以更新/插入SQL的Javascript

[英]Javascript to run PHP function to update/insert SQL

我遇到了一些小问题,我有这个JavaScript,以更新VLC webplugin的流,现在我真的很想在数据库中插入一些数据,以记录正在观看的数据。

这是我的JavaScript代码-

function changeVideo(filename) {
  var vlc = document.getElementById("tv");
  var options = [":http-user-agent=Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25"];
  var URL = filename;
  var AddVid = vlc.playlist.add(URL, "", options);
  vlc.playlist.playItem(AddVid);
}

这是我激活该功能的底部链接

<a href="javascript:void();" onclick="javascript:changeVideo('<?=$row["link"] ?>');"><img src="./70x/<?=$row["image"] ?>" alt="<?=$row["name"] ?>" style="width:70px;height:auto;"></a></a>

如何将名称和时间戳记入数据库? : - /

首先要感谢Maze Runner提供的处理Ajax的主要代码。 所以这就是我为使其正常工作并确保安全所做的工作。

这是播放器页面中的代码CREDIT TO Maze Runner

function changeVideo(filename,name) {
// here is the ajax call
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","infoSaver.php?name=" + name,true);
xmlhttp.send();

var vlc = document.getElementById("tv");
var options = [":http-user-agent=Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25"]; 
var URL = filename;
var AddVid = vlc.playlist.add(URL, "", options);
vlc.playlist.playItem(AddVid);
}

这是我的infoSaver.php代码

if (isset($_GET['id']) && is_numeric($_GET['id']))  {
$id = $_GET['id'];
  //check if id is vallid
$query1 = mysqli_query($db, "select * from channels WHERE active=1 AND `playid` = '$id' LIMIT 1");
while($row = mysqli_fetch_assoc($query1))   
{
$playid = $row["playid"];
}
if ($id == $playid) {
  // get the rest of the info
$ip = $_SERVER['REMOTE_ADDR'];
$time = time();
  // get name from DB
$query1 = mysqli_query($db, "select * from channels WHERE active=1 AND `playid` = '$id' LIMIT 1");
while($row = mysqli_fetch_assoc($query1))   
{
$name = $row["name"];
}
  // insert the entry
$query = mysqli_query($db, "INSERT INTO log (chname, chid, ip, time)
VALUES ('$name', '$id', '$ip', '$time')");
} else {
    echo '<p>The Id is not vallid</p>';
} 
} else {
    echo '<p>This page is protected</p>';
}

谢谢所有的帮助! 你们是最好的! <3

没有完整的代码,但是根据您的所拥有的,这是我的建议。

我将$row["name"]设为要发送到您的函数以及链接的参数。 所以它变成

changeVideo('<?=$row["link"] ?>','<?=$row["name"] ?>');

创建一个单独的php文件,例如... infoSaver.php该文件将具有将名称和时间戳保存到db所需的所有逻辑。 您将从网址字符串$_GET['name']获取名称,而日期仅是time()

将ajax调用放入函数中

function changeVideo(filename,name) {
// here is the ajax call
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","infoSaver.php?name=" + name,true);
xmlhttp.send();

var vlc = document.getElementById("tv");
var options = [":http-user-agent=Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25"]; 
var URL = filename;
var AddVid = vlc.playlist.add(URL, "", options);
vlc.playlist.playItem(AddVid);
}

这是一个简单的解决方案,多数应用将需要实施

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM