0
자바 스크립트 함수에서 PHP로 변수를 전달하는 데 문제가 있습니다. open_boosters는 site3.php에 전달할 배열에서 임의의 변수를 반환합니다. PHP 코드가 먼저 실행된다는 것을 알지만, 사용자가 아무 것도 클릭하지 않고이 변수들을 어떻게 전달할 수 있습니까?변수가 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
''rndNum' 다음에'='가 누락 되었습니까? ' "site3.php? rndNum"+ randnumb;' – Wiseguy
JS :''site3.php? rndNum = "+ randnumb'. PHP에서 :'isset ($ _ GET [ 'rndNum']? $ _ GET [ 'rndNum'] : false)'. 즉석에서 이미지 'src'를 변경하면 원하는 결과를 얻을 수 있을지 확실하지 않습니다. – Palladium