HTML、PHP、JavaScript——如何为数据库中的每个单独记录制作一个按钮?看起来很简单,但事实并非如此;不起作

HTML, PHP, JavaScript -- How to make a button for each individual record in a database? Seems simple but doesn't work

本文关键字:看起来 一个 按钮 简单 并非如此 事实 数据库 PHP HTML JavaScript 记录      更新时间:2023-09-26

我有一个SQL数据库(我确信它包括远程访问,如果需要通过php访问数据库的话)。它肯定至少有一条记录,我需要获取每条记录,并创建一个链接到php文件的相应按钮,将该记录的第一个字段作为/n参数、变量、参数,或者任何你称之为whatever.php的东西?variable=值。

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

<?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>

谢谢!

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

尝试以下javascript输出:

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

您的问题是$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语法。然后您的代码的其余部分应该可以工作了。

我只是不明白为什么你需要使用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。

相关文章: