-1

我有一个 SQL 数据库(我确定它包括远程访问,如果有必要通过 php 访问数据库)。它肯定至少有一条记录,我需要获取每条记录并创建一个链接到 php 文件的相应按钮,将该记录的第一个字段作为 a/n 参数、变量、参数或您调用的任何内容不管是什么.php?variable=value。

出于某种原因,这段代码只是给了我一个空白页。为什么?

<?php
    $connection=mysqli_connect("myhost","myusername","mypassword","mydatabase");
    $result=mysqli_query($connection, "SELECT * FROM myTable");
    $resultArray=array();
    while ($row = mysqli_fetch_array($result)) { 
        array_push($resultArray, $row['ID']);
    }
    $resultArrayImplode = implode(",", $resultArray);
?>
<script>
    var resultArray = <?php echo $resultArrayImplode; ?>
    arrayEntries = new Array();
    arrayEntries = resultArray.split(",");
    function CreateButtons(element, index, array) {
        var button = document.createElement("input");
        button.type = "button";
        button.value = element;
        button.onclick = function() {
            document.location.href = "ButtonClicked.php?id=" + element;
        }
        document.body.appendChild(button);
    }
    arrayEntries.forEach(CreateButtons);
</script>

谢谢!

4

3 回答 3

1

由于引号字符等原因,您对 resultArray 的 javascript 分配可能在语法上不正确。幸运的是,PHP 的 JSON 函数会自动为您创建好的 javascript。

试试这个 javascript 输出:

var arrayEntries = <?php echo json_encode($resultArray)?>;
于 2013-08-20T17:13:08.563 回答
0

你的问题是$resultArrayImplode;一个字符串,所以

var resultArray = <?php echo $resultArrayImplode; ?>

呈现为:

var resultArray = 1,2,3,4,5

这是一个语法错误。


您可以做的是使用 JSON。JSON 语法是 JavaScript 语法,所以您需要做的就是:

var arrayEntries = <?php echo json_encode($resultArray); ?>;

这应该呈现为:

var arrayEntries = [1,2,3,4,5];

这是完美的 JavaScript 语法。然后你的其余代码应该可以工作。

于 2013-08-20T17:06:05.640 回答
0

我只是不明白你为什么需要为此使用 javascript,你不能只执行以下操作:

<?PHP
foreach($resultArray as $result)
{
?>
 <a href="ButtonClicked.php?id="<?PHP echo $result; ?>><div class="button">Im a button click me</div></a>
<?PHP
}
?>

在我看来,我认为您没有真正需要为此使用 javascript。

于 2013-08-20T17:19:02.913 回答