0

javascript関数からphpページに変数を渡すのに問題があります。open_boostersは、site3.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; 
?>
4

1 に答える 1

2

コメントで提案されたほとんどの変更により、これを機能させることができました。

  • 関数を作成open_boosters()する
  • 不足=しているものをURLに追加
  • 両方の集合関数に同じrandnumb変数を使用しますgetElementById
<p id="generatenumbers"></p>
<img src="" id="randImg" />

<script>
function open_boosters() 
{
    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=randnumb;
    document.getElementById("randImg").src = "site3.php?rndNum="+randnumb;
}, false);

</script>

乱数は、site3.phpスクリプトで$_GET['rndNum'](ではなく$_GET['randnumb'])として使用できます。

于 2012-08-01T03:38:37.773 に答える