我有一个HTML表,其中包含来自特定数据库表的值。
每个html表都是由我创建的foreach循环生成的,用于获取所有表信息,它们的组织方式如下:
第一个复选框是消除表格行,工作正常,第二个复选框是更新。
我会尝试解释我想要做的事情:
让我们假设您是一个用户,并且您想要从数据库更新某些值,您需要检查要更新的行中的所有复选框,然后单击一个名为“edit”的按钮。 / p>
单击“编辑”后,将显示所选行的所有信息。
我正在尝试从这些选定的行中获取值,但我不知道该怎么做
我已经有了HTML中的代码,我将其插入到foreach循环中
<td><input style='width: 50px;' class='edit' value='Edit' type='submit' name='edit[]' /></td>
<td><input style='width: 50px;' type='checkbox' name='editcheck[]' value=".$key['id']." /></td>
我正在使用一种具有自己规则的MVC结构,我无法将查询放在视图上。我想在模型中创建一个函数,并在视图上调用此函数。
我该怎么做?
我只想要一些例子,请使用Foreach,谢谢。
答案 0 :(得分:0)
我有点在这里拍摄蓝色但是......
您已遍历所有这些数据库行,以显示与您的屏幕截图类似的行,从而为用户提供选择她想要编辑/删除的行的选项。
所以我假设您知道如何使用查询从数据库中获取数据。
现在,在显示您的行时,您的复选框会将行的ID作为值获取,这些值将通过post
传递到您的处理脚本。
因此,在您的处理脚本中,如果您var_dump您的发布数据($_POST
),您应该能够看到点击某些复选框如何影响您收到的数据。所以它可能看起来像这样:
$_POST = array (
'editcheck' = array(
3, 6, 9, 12
)
);
因此,应编辑ID为3,6,9和12的行。
现在,您可以迭代$_POST
变量,使用foreach从数据库中读取每一行,或者只是在查询中使用给定的数组。例如:
$query = "SELECT * FROM yourTable WHERE id IN ( " . implode (',', $_POST['editcheck']) ." )";
如果您不了解此功能,请阅读implode。如果您使用MySQL或阅读数据库查询语言并查找类似内容,请阅读MySQL IN Clause。或者,如果您使用某种ORM / DBAL工具(如Propel或Doctrine),请在那里找到相应的工具。
现在,如果您找到一个解决方案,其中一个查询为您提供了editcheck中的所有行,您肯定可以迭代该结果,因为它与以前的方式迭代行完全不同。
我希望这有帮助。 不过,我建议阅读一些非常基本的PHP教程,因为这是非常非常非常基本的东西。