与php / javascript函数调用混淆

时间:2012-07-29 07:21:34

标签: php javascript html

我有一个函数可以在一定范围内生成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]; 
     }

2 个答案:

答案 0 :(得分: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";
    // ...
?>

答案 1 :(得分: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表单,你可以直接通过返回的数组来在页面上创建图像元素。