2015-07-16 5 views
-2

Я хочу передать переменные JavaScript в PHP. Я знаю, это может быть невозможно, поэтому я пытаюсь использовать window.location.href, чтобы помочь мне, чтобы PHP получал JS-переменные, но вопрос в том, что я не хочу, чтобы он обновлялся при нажатии на видео.Передать переменные JavaScript в PHP

Как сделать, чтобы это не обновлялось после нажатия клика?

HTML:

<!DOCTYPE html> 
<html lang="en"> 

<head> 
    <meta charset="UTF-8"> 
    <title>UerAnalysis</title> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js" charset="utf-8"></script> 
    <!--<script type="text/javascript" src="js/script.js"></script>--> 
</head> 

<body> 
    <video id="video" src="Source/Maroon 5 - Sugar.mp4" width="500px" height="400px" onplay="startTime()" onpause="endTime()" controls> 
     <source src="Source/Maroon 5 - Sugar.mp4"> 
    </video> 
    <br> 
    <span id="TimeArea_start"></span> 
    <span id="TimeArea_end"></span> 
    <?php 
     echo ('<script src="js/script.js"></script>'); 
    ?> 
</body> 
</html> 

JS:

var vid = document.getElementById("video"); 

function startTime() { 
    console.log("StarTime:" + vid.currentTime) 
    var StarTime = document.getElementById("TimeArea_start").innerHTML; 
    var EndTime = document.getElementById("TimeArea_end").innerHTML; 

    if (StarTime < EndTime) { 
     console.log("StarTime:" + StarTime + "EndTime:" + EndTime + "," + "It" + "s" + " Success!!"); 
    } 
    var x = document.getElementById("TimeArea_start").innerHTML = vid.currentTime; 
    return window.location.href = "index2.php?vid=" + x; 
} 

function endTime() { 
    console.log("EndTime:" + vid.currentTime) 
    return document.getElementById("TimeArea_end").innerHTML = vid.currentTime 
}; 
+1

Ваша цель не очень ясна. Вы хотите, чтобы ваш JS уведомил ваш сервер о том, что видео было запущено? Таким образом, вы можете сохранить это в базе данных и получить статистику? Если это так, вы можете найти «Ajax». Он отправляет запросы на ваш сервер без перезагрузки страницы. – blex

ответ

0

Если вы просто хотите что-то передать в PHP, не ожидая никакого ответа, вы можете использовать AJAX .get() функции JQuery для что: (я могу видеть, как вы JQuery загружены на вашей странице в любом случае)

function startTime() { 
    console.log("StarTime:" + vid.currentTime) 
    var StarTime = document.getElementById("TimeArea_start").innerHTML; 
    var EndTime = document.getElementById("TimeArea_end").innerHTML; 

    if (StarTime < EndTime) { 
     console.log("StarTime:" + StarTime + "EndTime:" + EndTime + "," + "It" + "s" + " Success!!"); 
    } 
    var x = document.getElementById("TimeArea_start").innerHTML = vid.currentTime; 
    jQuery.get("index2.php?vid=" + x); 
} 

Это не приведет к перезагрузке вашей страницы. Индекс index.php будет называться полностью в фоновом режиме.

+0

_ «не ожидая ответа» _, ** или ** на самом деле ожидая ответа. '$ .get()' принимает обратный вызов 'success'. – blex

+0

Исправить. Тем не менее, он, похоже, не требует никакого ответа. – martynasma

+0

Спасибо, что работа! Просто нужно исправить ошибку в моем коде. –

0

Js является клиентский сценарий. вы не можете передавать переменные javascript в php. Но вы можете использовать ajax или redirect url для отправки данных на сервер. В вашем случае вы можете использовать ajax для отправки данных для разрыва.

return window.location.href = "index2.php?vid=" + x; 

Вы можете заменить на ajax-код. Надеюсь, что это полезно для вас.

Смежные вопросы