PHP循环第一个按钮不起作用

时间:2018-07-24 06:11:14

标签: javascript php html mysql while-loop

我为从数据库中获取的数据创建了一个while循环。我已经为每个循环添加了一个按钮。当用户单击按钮时,它应该打开一个新选项卡,并且由于我使用的是method =“ GET”形式,因此数据将传递到新选项卡窗口。 这不仅仅对第一个循环按钮有效,而对循环创建的所有其他按钮也可以正常工作。有人可以帮忙吗?代码如下:

$result = mysqli_query($link, $query);

        if ($result->num_rows > 0) {
    // output data of each row
        $row = 1;
        $number = 1;
        while($row = $result->fetch_assoc()) {

        echo '<tr>';
        $invoiceNumber = $row["invoiceNumber"]`enter code here`;
        echo ' <td align="center" style="text-align:center">' . $invoiceNumber . '</td>';
        echo ' <td align="right">' . $row["invoiceDate"] . '</td>';
        echo ' <td align="right">' . $row["accountName"] . '</td>';
        $beginTime = $row["beginTime"];
        $beginTime = date("D, j M Y", strtotime($beginTime));
        echo ' <td align="right">' . $beginTime . '</td>';
        $endTime = $row["endTime"];
        $endTime = date("D, j M Y", strtotime($endTime));
        echo ' <td align="right">' . $endTime . '</td>';
        echo ' <td align="center"style="text-align:center"><form method = "GET" action= "invoice.php" name="'.$number.'"><button name= "invoice" value='.$invoiceNumber.'></form>View</button></td>';
        echo '</tr>';
        $number = $number + 1;

    }

} else {
    echo "0 results";
}

2 个答案:

答案 0 :(得分:1)

看到表单结束标记</form>位于<button>标记内,您是否可以尝试将其更改为:

<td align="center"style="text-align:center">
    <form method = "GET" action= "invoice.php" name="'.$number.'">
        <button name= "invoice" value='.$invoiceNumber.'>View</button>
    </form>
</td>

看看是否有帮助。

答案 1 :(得分:0)

我编辑了代码并删除了表单标签。现在,所有按钮(包括while循环中的第一个按钮)都可以完美运行。代码如下:

echo ' <td align="center"style="text-align:center"><button id="invoice" name= "invoice[]" value='.$invoiceNumber.'>View</button></td>';


<?php

if ($_POST['invoice']) {

$name = $_POST['invoice'];
$array = $name[0];
//echo $array;
echo '<script>window.open("invoice.php?'.$array.'","_blank")</script>';
}
?>