-1

这可能是很多人问的问题,但是,我遇到了一些不同的问题。

我正在开发一个“游戏”部分,其中每个图像都是一个标签,它将加载一个 Flash 游戏 .swf,问题是,这需要动态,我的意思是,每个 file.swf 都有不同的宽度/高度,我做了一个函数在从 file.swf 带来宽度/高度的 PHP 中,我尝试使用 javascript 来执行此操作,但是在加载 file.swf 时遇到了一些高度问题,例如,一个 file.swf 使用 php 函数具有 720x550 和JS 函数给了我 720x714,所以......这就是事情,我在 PHP 中得到了这个函数:

function flash_get(){
ini_set("memory_limit","30M");
$file ="games/miniracing3d.swf";
$info = getimagesize($file);
$width = $info[0];
$height = $info[1];
echo "<script type='text/javascript'>
    $('#game_lb_loaded').flash({
     src: 'games/miniracing3d.swf',
     width:$width,
     height:$height       
      });
</script>"; 
}

它加载了一个名为 jquery.flash.js 的 JS 插件,它是加载文件的插件......但是,我需要它来使用 Jquery,为什么?好吧,我在 Jquery 中得到了这段代码:

$body.on('click','.game_button_link',function() {
var id_game = $(this).attr('id'),
    game = 'games/'+id_game+'.swf';


$("#game_lb_loaded").lightbox_me({
  centered: true,
  closeEsc: true,
  overlayCSS: {
      background: 'black',
      opacity: .8,
      width: 750,
      height: 600
  },
  onLoad: function() {
    $("#game_lb_loaded").flash({
     src: game       
      });

  }
});
});

该代码是我在制作 PHP 函数之前正在工作的代码,嗯,就是这样,每个都有类“game_button_link”和一个 id,每个 id 都将是 .swf 的名称,例如 id=" file" == "file.swf" id="file2" == "file2.swf"...等等...实际上,我需要混合 php 函数来获取 onclick 的宽度/高度jquery 函数我真的不知道如何实现这个,哦,我忘了,我用 lightbox_me 打开一个带有 flash 文件的灯箱......但现在没关系,我想混合 php 和 jquery 函数 T_T,拜托我需要你的帮助 :)

我最终使用了这段代码:

Javascript

$body.on('click','.game_button_link',function() {
    var id_game = $(this).attr('id'),
    game = 'games/'+id_game+'.swf';

$("#game_lb_loaded").lightbox_me({
    centered: true,
    closeEsc: false,
    closeClick: false,
    closeSelector: ".close_button_lb",
    appearEffect: "fadeIn",
    overlayCSS: {
      background: 'black',
      opacity: .8,
      width: 800,
      height: 600
    },

  onLoad: function() {
$.post('game_dimension.php', 'game='+game,
function(data){
  var dimensions = data.split(',');
    $('#game_lb_loaded').flash({
        src: game,
        width: dimensions[0],
        height: dimensions[1]
    });
}


);

  },
    destroyOnClose: true
});
});

PHP

<?php
ini_set("memory_limit","30M");
$file = $_POST['game'];
$info = getimagesize($file);
$width = $info[0];
$height = $info[1];
echo $width.','.$height;
?>

感谢所有帮助过的人:)我真的很感激!

4

3 回答 3

1

PHP是服务器端,JS是客户端。它们不混合。
您可以使用 jQuery.ajax()从服务器获取数据,但您永远不能在客户端运行 PHP。

于 2013-05-12T01:53:50.283 回答
0

如果您在发送页面之前(在 PHP 代码中)知道这些值,则可以将它们写出到页面中的 javascript 中。在我的示例中,我将使用需要将其传递给不受 PHP 文件控制的函数的情况:

<?php

$height = getHeight(); // just for example

?>
<script>
var height = <?php echo $height; ?>;

doSomethingWith( height );
</script>

如果是在页面发送之后,您将使用 AJAX。您将创建一个不输出任何内容的 PHP 页面

<?php
$height = getHeight(); // Just for example
$width = getWidth(); // Just for example
$out = array("height"=>$height, "width"=>$width);
echo json_encode($out);
?>

然后在您的 javascript 中,您可以使用 jQuery 或其他 JSON 解析器或 eval() [但仅当您控制脚本的输出并对此三思而后行时]。

var myObj = $.parseJson(serverOutput);

alert(myObj.height);
alert(myObj.width);

这就是你解决这个问题的一般两种方式。

于 2013-05-12T02:27:51.103 回答
0

我想这就是你要找的吗?在您的 php 文件中,而不是回显该脚本

 echo $width.','.$height;

然后这将是您的 ajax 调用。

$.post('file.php',
    function(data){
        var dimensions = data.split(',');
        $('#game_lb_loaded').flash({
            src: 'games/miniracing3d.swf',
            width: dimensions[0],
            height: dimensions[1]
        });
    }
);

这有帮助吗?

于 2013-05-12T02:08:35.643 回答