与php/javascript函数调用混淆


confused with php/javascript function call

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

我不确定下一部分是否正确,但我有一个按钮,在$_POST上会发送到我的php脚本,该脚本一次从数据库生成1图像。我需要它来发送generate_numbers函数中的随机数,所有13个,因为最后我想用一次点击按钮来显示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]; 
     }

表单为的页面

<!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";
    // ...
?>

您可以使用phpforeach循环来循环遍历每个数字。在你的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表单,那么您可以循环遍历返回的数组,在页面上创建图像元素。