-1
所以我正在做一個AJAX調用(從YouTube的播放器的JavaScript)到一個PHP頁面,其中包含一些功能(主要插入到數據庫),我正在做一個case語句在我的PHP看到正在調用函數的帖子。Ajax調用數據庫PHP
下面是一個包含在我發出Ajax調用JavaScript我的PHP頁面:
<script>
function get(name){
if(name=(new RegExp('[?&]'+encodeURIComponent(name)+'=([^&]*)')).exec(location.search))
return decodeURIComponent(name[1]);
}
//Load player api asynchronously.
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var done = false;
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: get('url'),
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerReady(evt) {
// evt.target.playVideo();
}
function onPlayerStateChange(evt) {
if (evt.data == YT.PlayerState.PLAYING && !done) {
$.ajax({ url:'insertToDBFromVid.php',
data: {action : 'insertStart' },
type: 'post',
success: function (result){
alert(result);
}
});
}
if (evt.data == YT.PlayerState.PAUSED && !done) {
}
}
function stopVideo() {
player.stopVideo();
}
正如你可以看到我從URL行獲得視頻的ID,這工作正常。
這是我的PHP代碼,Ajax調用應該打電話來:
<?php
require("config.php");
if(isset($_POST['action']) && !empty($_POST['action'])){
$action = $_POST['action'];
switch($action){
case 'insertStart' : insertStart(); break;
// case 'anotheraction' : anotheraction(); break;
}
}
function getUserID() {
$query = " SELECT 1 FROM users WHERE username = :username";
$query_params = array(':username' => $_POST['username']);
try {
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch(PDOException $ex){ die("Failed to run query: " . $ex->getMessage()); }
$row = $stmt->fetch();
if($row){ echo "cant get user id" die("Cannot get User ID"); }
$row = $result->fetchObject();
$userid = $row->user_id;
}
function getVideoID() {
$query = " SELECT 1 FROM video WHERE url = :url";
$query_params = array(':url' => $_GET["url"]);
try {
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch(PDOException $ex){ die("Failed to run query: " . $ex->getMessage()); }
$row = $stmt->fetch();
if($row){ die("Cannot get Video URL"); }
$row = $result->fetchObject();
$videoid = $row->video_id;
}
function insertStart(){
getUserID();
getVideoID();
$query = " INSERT INTO session (user_id, video_id) VALUES (
:userid, :videoid)";
$query_params = array(':userid' => $userid, ':videoid' => $videoid);
}
?>
有人能看到我在那裏出了問題?
所有的邏輯步驟中拋出什麼錯誤? – jhansen
問題是什麼? – jeroen
如何查看引發的錯誤?我使用記事本++作爲我的IDE。問題是插入不能在對insertStart()函數的ajax調用中工作。查看我的代碼是否有任何明顯錯誤? – lifeisaloop