HTML、PHP、JavaScript——如何为数据库中的每条记录创建一个按钮?看起来很简单,但并不';行不通

HTML、PHP、JavaScript——如何为数据库中的每条记录创建一个按钮?看起来很简单,但并不';行不通,php,javascript,html,mysqli,Php,Javascript,Html,Mysqli,我有一个SQL数据库(我确信它包括远程访问,如果需要通过php访问数据库的话)。它肯定至少有一条记录在其中,我需要获取每条记录并创建一个链接到php文件的对应按钮,将该记录的第一个字段作为a/n参数、变量、参数或任何您称之为whatever.php?variable=value的内容 出于某种原因,这段代码只给了我一个空白页。为什么? <?php $connection=mysqli_connect("myhost","myusername","mypassword","mydat

我有一个SQL数据库(我确信它包括远程访问,如果需要通过php访问数据库的话)。它肯定至少有一条记录在其中,我需要获取每条记录并创建一个链接到php文件的对应按钮,将该记录的第一个字段作为a/n参数、变量、参数或任何您称之为whatever.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>

var resultArray=
arrayEntries=新数组();
arrayEntries=resultArray.split(“,”);
函数CreateButtons(元素、索引、数组){
var按钮=document.createElement(“输入”);
button.type=“button”;
button.value=元素;
button.onclick=函数(){
document.location.href=“ButtonClicked.php?id=“+元素;
}
document.body.appendChild(按钮);
}
arrayEntries.forEach(创建按钮);

谢谢

您的问题是
$resultarray内爆
是一个字符串,所以

var resultArray = <?php echo $resultArrayImplode; ?>
这是一个语法错误


你能做的就是使用JSON。JSON语法是JavaScript语法,因此您需要做的只是:

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

这是完美的JavaScript语法。然后剩下的代码就可以工作了。

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

对于javascript输出,请尝试以下操作:

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

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

检查正在输出的javascript源代码并读取浏览器的javascript控制台错误。我知道我听起来像个白痴,但我到底该怎么做呢?我想我得到了关于读取控制台错误的部分,但是网页甚至输出源代码吗?不使用
内爆
拆分
,只需执行
var arrayEntries=
@DevinLynch99:浏览器的开发工具将向您显示页面的JavaScript/HTML源代码。通常是
F12
Ctrl
+
Shift
+
J
。对于您的开发,请使用FireFox并安装FireBug插件。它会给你一个javascript控制台和许多其他很棒的工具。讽刺的是,我认为问题在于我的浏览器不喜欢第一个,因为我试着按照你说的做,它仍然做同样的事情。@DevinLynch99:您的浏览器应该不知道这曾经是一个
@DevinLynch99:如果您右键单击页面并选择“查看源代码”,会发生什么情况,您会看到什么?你能看到你的JavaScript吗?如果按F12键(或按Ctrl键)怎么办?您是否看到任何错误?另外,请尝试
,具有讽刺意味的是,我认为问题在于我的浏览器不喜欢第一个“您的浏览器不应该看到第一个”,因此我认为您缺少以下内容:$.getJSON(“;”,function(array){您要做的事情到此为止})@Q_ro:
$。getJSON
运行AJAX请求。这里没用。您需要
$.parseJSON
,这在这里也不有用
将打印JSON语法,该语法可以作为JavaScript代码运行,无需任何解析。因此
var arrayEntries=是您所需要的全部。
var arrayEntries = <?php echo json_encode($resultArray)?>;
<?PHP
foreach($resultArray as $result)
{
?>
 <a href="ButtonClicked.php?id="<?PHP echo $result; ?>><div class="button">Im a button click me</div></a>
<?PHP
}
?>