0

特定の範囲内で重複のない13個のランダムな整数を生成する機能があります。

次の部分が正しいかどうかはわかりませんが、$_POSTでデータベースから一度に1 つの画像を生成する php スクリプトに送信するボタンがあります。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 に答える