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

时间:2015-03-06 23:41:55

标签: javascript php html mysql 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>

如何获取数据库中的名称和时间戳? : - /

2 个答案:

答案 0 :(得分:1)

首先感谢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>';
}

感谢所有的帮助!你的家伙是最好的! &LT; 3

答案 1 :(得分:0)

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

我会将$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);
}

这是大多数应用需要实施的简单解决方案