2016-04-18 19 views
-1

私はPHPには新しく、学校プロジェクトの小さなウェブページ部分を実装しようとしています。 video.jsファイルのreportBufferingメソッドは、Jquery ajaxを使用してserver.phpのbufferingEventLoggerメソッドを呼び出し、渡された値をDatabaseに格納する必要があります。私はbufferingEventLogger関数をトリガすることができません。 video.jsのコードは次のとおりです。jQueryを使用してphp関数を呼び出せません:ajax

var video; 
$(document).ready(function(){ 
var timeBuffered = 0; 
var timer; 
    video = $('#main-video')[0]; 
    video.play(); 
    $(video).on("play",function(){ 
    if(timer!=null) 
     clearInterval(incrementBufferedTime); 
    }); 
    $(video).on("waiting",function(){ 
    timer = setInterval(function(){ 
     incrementBufferedTime 
    },1000); 
    }); 
function incrementBufferedTime(){ 
    timeBuffered++; 
    console.log("Buffered time"+timeBuffered); 
    if(timeBuffered > 5){ 
     reportBuffering() 
    } 
} 
function reportBuffering(){ 
    $.ajax({ 
     method: "POST", 
     url: "server.php", 
     data:{functionId:'bufferingEventLogger',val0:1,val1:'2016-04-18 16:37:01',val2:'2016-04-18 16:37:02'}, 
     success:function (response) { 
     console.log(response) 
     } 
    }); 
} 
reportBuffering(); 

});コードの下

server.phpという

$id=$_POST['val0']; 
$bufferStartTime=$_POST['val1']; 
$bufferEndTime=$_POST['val2']; 

//bufferingEventLogger($id,$bufferStartTime,$bufferEndTime); 

function bufferingEventLogger($id,$bufferStartTime,$bufferEndTime){ 
$conn = mysqli_connect("localhost", "root", "", "metrics"); 
$sql = "INSERT INTO buffer_time(id,buffer_start,buffer_end) VALUES $id,'$bufferStartTime','$bufferEndTime')"; 
echo 'entered'; 

if (mysqli_query($conn, $sql)) { 
echo "New record created successfully"; 
} else { 
echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
} 

} 


mysqli_close($link); 

のためである私は、同様の質問を経てきたが、それは仕事を得ることができませんでした。ありがとう

答えて

0

bufferingEventLoggerを呼び出す行はコメントアウトされています。

この機能を呼び出すだけですか?その場合は、行のコメントを外してください。

さらに機能を追加する場合は、switch文のようなものを使用する必要があります。

0

@beating_around_abushあなたはほとんどそこにいます!あなたが今やっているのは、(AJAX呼び出しの一環として)クライアントからサーバーに関数名を渡すことです。ただし、サーバー側では、データは文字列として受信されます。サーバー上で実行する必要があるのは、その文字列値を呼び出して呼び出し可能な定義(この場合は関数呼び出し)に変換することです。逆に、mysqli_close($link);の直前のPHPファイルでは、特にbufferingEventLogger()の呼び出しを追加します。これは、関数定義をリファクタリングする必要があることを意味しますが、それは簡単な変更です。

関連する問題