0

我有一个函数可以在一定范围内生成 13 个没有重复的随机整数。

我不确定下一部分是否正确,但我有一个按钮,在 $_POST 上将发送到我的 php 脚本,该脚本一次从数据库生成1 个图像。我需要它从我的 generate_numbers 函数中发送随机数,全部 13 个。,因为最后我想通过 1 次单击按钮显示 13 个不同的图像。我该如何解决这个问题?我需要排队吗?

**Button to submit to PHP form named display.php**
<input type="submit" name"display" value=generate_numbers()>

  var generate_numbers = function()
     {

        var i, j;
        var array=[];
        for(i=0; i < 13; i++)
        {
            array[i] = Math.floor(Math.random()*14)+16);
                for(j=0;j<i;j++)
                {
                    while(array[i]==array[j])
                    {
                        array[i]= Math.floor(Math.random()*14)+16);
                    }

                }

        return array[i]; 
     }
4

2 回答 2

1

带有表单的页面

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript">

        var rndNums = new Array(16,17,18,19,20,21,22,23,24,25,26,27,28);
        var generate_numbers = function()
        {
            for(var i=0; i < 13; i++)
            {
                var idx = Math.floor(Math.random()*rndNums.length);
                var rndNum = rndNums[idx];
                rndNums[idx] = rndNums[rndNums.length - 1];
                rndNums.pop();
                document.getElementsByName("nums[]").item(i).value=rndNum;
            }
        }

    </script>
</head>
<body>
    <form id="numberForm" action="display.php" method="POST">
        <input type="hidden" name="nums[]">
        <input type="hidden" name="nums[]">
        <input type="hidden" name="nums[]">
        <input type="hidden" name="nums[]">
        <input type="hidden" name="nums[]">
        <input type="hidden" name="nums[]">
        <input type="hidden" name="nums[]">
        <input type="hidden" name="nums[]">
        <input type="hidden" name="nums[]">
        <input type="hidden" name="nums[]">
        <input type="hidden" name="nums[]">
        <input type="hidden" name="nums[]">
        <input type="hidden" name="nums[]">
    </form>
    <button onclick="generate_numbers();document.getElementById('numberForm').submit()">submit</button>
</body>
</html>

在 php 端,“display.php”:

<?php
    $nums = $_POST['nums']; // array
    foreach($nums as $key => $val)
        echo 'nums['.$key.']='.$val."<br>\n";
    // ...
?>
于 2012-07-29T08:50:15.257 回答
0

您可以使用 php foreach 循环遍历每个数字。在你的 PHP 文件中是这样的:

$images = array();

foreach ($POST['display'] as $num) {
  $img_from_number = get_image_from_number($num);
  $images[] = $img_from_number;
}

// code to display images on page
// or for JSON return $images

function get_image_from_number($num)
  // code here
}

如果你正在做一个 AJAX 表单,你可以通过返回的数组循环来在页面上创建图像元素。

于 2012-07-29T07:28:53.203 回答