我试图在javascript中发生某些操作后增加php变量。问题是变量只会增加一次(从0到1)。之后它保持为1.我希望它在JS中的操作完成后增加到2等等。 这是我的代码:
Authentication=ActiveDirectoryPassword
感谢您的任何建议。
答案 0 :(得分:1)
您应该做的第一件事是阅读有关服务器端和客户端编程之间差异的内容。
重要提示是PHP代码在html和javascript之前执行。并且在请求服务器之前它不会再次执行。
我认为最好不要将php和javascript结合在一起。 因此,为简单起见,您的代码可能如下所示:
index.htm (或w / e)
<script type="text/javascript">
var array_position = 0; // init position
var video_id = 0; // init video_id
// create youtube player
var player;
// $array = just an array of strings
// $array_position = position in array
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
width: '640',
height: '390',
videoId: video_id,
events: {
onStateChange: onPlayerStateChange
}
});
}
// when video ends the $array_poisition should increment everytime
function onPlayerStateChange(event) {
if (event.data === 0) {
// make ajax request
ajaxRequest();
}
}
// make ajax request to change array position and video_id
function ajaxRequest() {
$.ajax({
url: "getVideoId.php",
type: "post",
data: {position: array_position},
success: function (load) { // IF AJAX IS SUCCESS ->
array_position++;
//change video_id
video_id = load;
//change the id of the video
player.loadVideoById(video_id);
}
});
}
重要提示,使用jquery调用ajax,因此您肯定希望link it。
<强> getVideoId.php 强>
<?php
// Whatever array of whatever values
$array = [1,2,3,4,5,6,7,8,9,10];
// Echo it out
echo $array[$_POST['position']];
您一定会想要根据需要编辑此代码。添加一些条件或向ajax请求添加错误句柄。
其他方法可以是在脚本加载时将带有视频ID的数组加载到javascript,然后它可能只是没有ajax请求的js脚本。
答案 1 :(得分:-1)
你可以使用PHP的Php-to-Js Youtube插件。 要么 您应该在递增之前向服务器发送javascript请求
requestJs-&GT;服务器(增量(array_position))