【问题标题】:php/javascript random numberphp/javascript 随机数
【发布时间】:2016-04-01 01:27:51
【问题描述】:

您好,我正在使用 JavaScript 并尝试选择一些随机图像。

我真正想做的事 我在 php 中有$totalsixes = rand(1,6); 假设选择了 4,然后在 JavaScript 中我想显示 4 个图像,数字为 6,另外 2 个图像是 1-5 的随机数

这是我迄今为止尝试过的:

<?php
$totalsixes = rand(1,6);
?>
<script type="text/javascript">
function shuffle(o){ 
    for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] =     o[j], o[j] = x);
    return o;
};

var imagePaths = shuffle([
    "http://website.com/spill2/terninger/1.gif",
    "http://website.com/spill2/terninger/2.gif",
    "http://website.com/spill2/terninger/3.gif",
    "http://website.com/spill2/terninger/4.gif",
    "http://website.com/spill2/terninger/5.gif",
    "http://website.com/spill2/terninger/6.gif"]);

for(var i = 0; i < imagePaths.length; i++) {
    document.getElementById("randterning" + i).src = imagePaths[i];
}
</script>

正如您在上面看到的那样,$totalsixes 在代码中根本没有任何意义,因为我不知道如何告诉 JavaScript 显示 X($totalsixes 选择了 X),而且我也不知道不知道如何让 JavaScript 为其他骰子选择一个随机数。总有 6 个骰子。

希望您能轻松理解我的意思,并希望您能帮助我。

感谢和抱歉我的英语。

我想要制作的示例的屏幕截图: http://prntscr.com/9iqiag

【问题讨论】:

  • @PatricNais "想要显示 4 张图像,编号为 6,另外 2 张图像的随机数为 1-5" 不确定是否正确解释要求?显示四个随机图像?预期的结果是什么?
  • 我建议您使用 JS 库,例如 Underscore
  • 请注意;索引从 0 开始,而不是 1。如果您想从随机选择中排除某些项目,请在您仍然知道它们的索引时 shuffle 之前进行操作
  • @guest271314 prntscr.com/9iqiag 我希望这个截图可以帮助你理解
  • @PatricNøis $totalsixes 定义在 js 吗?

标签: javascript php html random


【解决方案1】:
<?php $totalsixes = rand(1,6); ?>

<script type="text/javascript">
    function shuffle(o){
        for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] =  o[j], o[j] = x);
        return o;
    }

    var imagePaths = [
        "http://website.com/spill2/terninger/1.gif",
        "http://website.com/spill2/terninger/2.gif",
        "http://website.com/spill2/terninger/3.gif",
        "http://website.com/spill2/terninger/4.gif",
        "http://website.com/spill2/terninger/5.gif",
        "http://website.com/spill2/terninger/6.gif"];

    var images = []; // <- edit here
    for(var x= 0 ; x<6; x++){
         images[x] = x < <?echo $totalsixes?> ?  imagePaths[5] : imagePaths[Math.floor(Math.random() * 5)];
              //^ edit here
    }
    images = shuffle(images);

    for(var i = 0; i < imagePaths.length; i++) {
        document.getElementById("randterning" + i).src = images[i];
    }
</script>

如果我理解正确,结果是一张带有“rand”六点的表,其他都是随机骰子,但六点

【讨论】:

  • 使用此代码后,即使图像路径正确,我也不会得到任何图像:prntscr.com/9j0r22
猜你喜欢
  • 2013-02-06
  • 2016-11-05
  • 2010-11-10
  • 2011-07-10
  • 1970-01-01
  • 1970-01-01
  • 2011-03-09
相关资源
最近更新 更多