与php/javascript函数调用混淆
我有一个函数,在一定范围内生成13个随机整数,没有重复 我不确定下一部分是否正确,但我在$\u POST上有一个按钮,它将发送到我的php脚本,该脚本一次从数据库生成一个图像。我需要它从我的generate_numbers函数中发送随机数,全部13个,因为最后我想通过单击按钮显示13个不同的图像。我如何处理这个问题?我需要排队吗与php/javascript函数调用混淆,php,javascript,html,Php,Javascript,Html,我有一个函数,在一定范围内生成13个随机整数,没有重复 我不确定下一部分是否正确,但我在$\u POST上有一个按钮,它将发送到我的php脚本,该脚本一次从数据库生成一个图像。我需要它从我的generate_numbers函数中发送随机数,全部13个,因为最后我想通过单击按钮显示13个不同的图像。我如何处理这个问题?我需要排队吗 **Button to submit to PHP form named display.php** <input type="submit" name"disp
**Button to submit to PHP form named display.php**
<input type="submit" name"display" value=generate_numbers()>
**按钮提交到名为display.PHP的PHP表单**
var generate_numbers=函数()
{
varⅠ,j;
var数组=[];
对于(i=0;i<13;i++)
{
数组[i]=Math.floor(Math.random()*14)+16);
对于(j=0;j,您可以使用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表单,则只需循环返回的数组即可在页面上创建图像元素。使用表单创建页面
<!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>
var rndNums=新阵列(16,17,18,19,20,21,22,23,24,25,26,27,28);
var generate_numbers=函数()
{
对于(变量i=0;i<13;i++)
{
var idx=Math.floor(Math.random()*rndNums.length);
var rndNum=rndNum[idx];
rndNums[idx]=rndNums[rndNums.length-1];
rndNums.pop();
document.getElementsByName(“nums[]”)。项(i)。值=rndNum;
}
}
提交
在php端的“display.php”:
生成图像的PHP正在处理二进制数据,我还可以在内部使用此循环吗?非常感谢优秀的代码,我将进一步查看它,但现在我收到两个错误注意:未定义索引:nums警告:为foreach()提供的参数无效
<!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
$nums = $_POST['nums']; // array
foreach($nums as $key => $val)
echo 'nums['.$key.']='.$val."<br>\n";
// ...
?>