PHP变量不会在Javascript脚本中递增

时间:2018-02-04 11:37:38

标签: javascript php iframe

我试图在javascript中发生某些操作后增加php变量。问题是变量只会增加一次(从0到1)。之后它保持为1.我希望它在JS中的操作完成后增加到2等等。 这是我的代码:

Authentication=ActiveDirectoryPassword

感谢您的任何建议。

2 个答案:

答案 0 :(得分:1)

您应该做的第一件事是阅读有关服务器端和客户端编程之间差异的内容。

teemu suggesthere是很好的解释。

重要提示是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))