PHP中的HTML表单按钮while循环

时间:2014-06-09 12:55:52

标签: php mysql sql

我在PHP中有一个从数据库中选择数据的while循环

我想为返回的每一行都有一个完整的按钮,当按下它时会运行一个SQL查询来更改该特定行的status列的值

我的while循环是:

$stmt = $pdo_conn->prepare("SELECT * from messages where status = :status and (assigned_to = :assigned_to1 OR assigned_to = :assigned_to2) ");
$stmt->execute(array(':status' => '', ':assigned_to1' => $user_result["sequence"], ':assigned_to2' => ''));
$records = $stmt->fetchAll(PDO::FETCH_ASSOC);
$i=0;
if(count($records) > 0) {
    echo '<tr>
    <td colspan="7">You have '.count($records).' Messages</td>
    </tr>';
    foreach($records as $Messages) {
        $i++;
        echo '<tr>
        <td>'.AdminNameLookup($Messages["assigned_to"]).'</td>
        <td>'.$Messages["caller_company"].'</td>
        <td>'.$Messages["caller_telephone"].'</td>
        <td>'.$Messages["caller_email"].'</td>
        <td>'.$Messages["caller_message"].'</td>
        <td><input type="submit" name="CompleteMessages['.$i.']" value="" /></td>
        </tr>';
    }
}

但我不太确定如何在提交时处理PHP?

3 个答案:

答案 0 :(得分:0)

我会改用它:

<td><input type="submit" name="CompleteMessages" value="'.$i.'" /></td>

然后您可以使用以下内容获取ID:

$Id = $_POST['CompleteMessages'];

就我个人$i设置为$Messages["message_id"]而言,您可以找到您实际提交的ID。

您还需要将所有内容包装在form标记中:

<form action="submit.php" method="POST">
  ...
</form>

答案 1 :(得分:0)

在发送数据之前,您需要创建html表单标记。此外,您还可以使用输入标记值传递值。

格式标记应该如下代码所示。

 <form action="" method="">
 <input  type="" value="">
 <input type="submit" name="CompleteMessages['.$i.']" value="" />
 </form>

答案 2 :(得分:0)

如果您只想更改单击提交按钮的行的值, 那么每个记录都需要一个唯一的密钥。

让我们假设消息表有一个MessageID列。

一种方法是调用javascript函数。

让我们说你的javascript函数叫做UpdateColumn(ID,ColName,Index)

这里需要添加到每个输入按钮(伪代码)

onclick="UpdateColumn($Messages['MessageID'],'Status',$i)"

然后你的javascript需要从输入CompleteMessages [Index]

中查找值

Javascript可以通过ajax来调用你的请求...

update.php?MessageID=MessageID&Column=Status&Value=CompleteMessages[Index].value

最后你处理提交的php将获取值

使用

$MessageID=$_REQUEST["MessageID"];
$Column=$_REQUEST["Column"];
$Value=$_REQUEST["Value"];

然后,您将需要运行一个sql查询,相应地更新您的数据库。