$ _POST [] - 不同的提交按钮

时间:2017-10-17 14:03:11

标签: php mysql

我陷入了一些棘手的局面。 好吧,这是代码的重要部分:

> if (mysqli_num_rows($result) > 0) {
  // output data of each row
    while($row = mysqli_fetch_assoc($result)) {
        $name = $row["name"];
        $votes = $row["votes"];

        echo " name: '" .$name. "' - votes: '" .$votes. "' <input type='submit' name='".$name."' value='".$name."' ><br>";
    }
    if (isset($_POST[''])) {

    } 
    else {
        echo "0 results";
    }
 }

我想要做的就是在每行附近打一个提交按钮来打印表格行,这非常合适。 现在,我希望提交按钮在按下后发送数据库。 问题是只有一个按钮,每个按钮获得一个不同的名称(通过数据库表中的数据)(如代码所示)。 那么我究竟如何从 POST [] 中专门调用每个按钮,因为您可以看到if语句不在while循环中。求救!

非常感谢!

2 个答案:

答案 0 :(得分:0)

可能是您可以尝试为此行创建表单

<?
if (mysqli_num_rows($result) > 0) {
  // output data of each row
    while($row = mysqli_fetch_assoc($result)) {
        $name = $row["name"];
        $votes = $row["votes"];
        echo '<form method="POST" action="script.php">';
        echo " name: '" .$name. "' - votes: '" .$votes. "' <input type='submit' name='".$name."' value='".$name."' ><br>";
        echo '<input type="hidden" name="submitted_vote" value="'.$row['id'].'" />';
        echo "</form>"

    }
 }
if (isset($_POST['submitted_vote'])) {
    echo 'The submmitted vote is : '.$_POST['submitted_vote'];
} 
else {
    echo "0 results";
}

答案 1 :(得分:0)

您的主要问题是,您为每个提交按钮使用不同的name属性。您希望为具有不同值的每个提交按钮使用相同的名称,并且您的表单将仅提交所单击按钮的值。

例如:

<form action="46792098.php" method="post">
<div>
<button type="submit" name="submit_id" value="1">1</button>
<button type="submit" name="submit_id" value="2">2</button>
<button type="submit" name="submit_id" value="3">3</button>
<button type="submit" name="submit_id" value="4">4</button>
<button type="submit" name="submit_id" value="5">5</button>
</div>
</form>

如果PHP代码是:

<?php
var_dump($_POST);

然后点击#5按钮,您的输出将是:

array (size=1)
  'submit_id' => string '5' (length=1)

然后您的逻辑只会检查submit_id表单参数以确定单击了哪个按钮。