我有一个函数,可以在一定范围内生成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表单,那么您可以循环遍历返回的数组,在页面上创建图像元素。