0
我有一些麻烦,从我的JavaScript函数传递给我的PHP页面。 open_boosters从我想传递给site3.php的数组中返回一个随机变量。我知道PHP代码get首先被执行,但我怎么能传递这些变量而不需要用户点击任何东西?从函数的变量不被传递到php
> main.html中
<p id="generatenumbers"></p>
<script>
var open_boosters = 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];
}
}
window.addEventListener('DOMContentLoaded', function()
{
var randnumb = open_boosters();
document.getElementById("generatenumbers").innerHTML=open_boosters();
document.getElementById("randImg").src = "site3.php?rndNum"+randnumb;
}, false);
</script>
site3.php
<?php
$mysqli=mysqli_connect('localhost','root','','draftdb');
if (!$mysqli)
die("Can't connect to MySQL: ".mysqli_connect_error());
$stmt = $mysqli->prepare("SELECT display.PICTURE_ID
FROM cards
INNER JOIN display ON cards.DISPLAY_ID = display.DISPLAY_ID
WHERE display.DISPLAY_ID=? AND cards.CARD_TYPE ='rare'");
$displayid = isset($_GET['randnumb'])? $_GET['randnumb'] : false;
//echo "Number: ".$displayid." ";
$stmt->bind_param("i", $displayid);
$stmt->execute();
$stmt->bind_result($image);
$stmt->fetch();
//header("Content-Type: image/jpeg");
echo $image;
?>
您需要将open_boosters声明为函数,而不是变量。 'function open_boosters(){...}' – Matt 2012-07-31 20:24:51
'rndNum'后缺少'='? '“site3.php?rndNum”+ randnumb;' – Wiseguy 2012-07-31 20:25:53
在你的JS:'“site3.php?rndNum =”+ randnumb'。在你的PHP中:'isset($ _ GET ['rndNum']?$ _ GET ['rndNum']:false)'。虽然我不完全确定是否即时更改“src”图像将实现您的预期结果。 – Palladium 2012-07-31 20:27:43