单击按钮更新信息表

时间:2016-05-31 01:40:20

标签: php forms mysqli sql-update

我有一个表格,它将从数据库中选择信息并显示它,我想知道是否有人可以通过点击按钮为我提供更新列的代码?

示例表:( Access = Boolean)

long CRational::getLCD(const Rational &rationalNumber) const
{
    return lcd(rationalNumber);
}

我的现有按钮基于bootstrap,

ID   -   Name   -   Access
---------------------------
1   -   John    -    1
---------------------------
2   -   Ben     -    1
---------------------------
3   -   Terry   -    0
---------------------------

我希望这样的东西,ONCLICK button1运行$ Allowed SQL ONCLICK button2运行$ NotAllowed SQL

    <button type=\"button\" id=\"passed\" class=\"btn btn-success btn-flat\"><i class=\"fa fa-check\"></i></button>
    <button type=\"button\" id=\"insufficient\" class=\"btn btn-danger btn-flat\"><i class=\"fa fa-times\"></i></button>

2 个答案:

答案 0 :(得分:3)

您可以使用带有post方法的表单和带有命名属性的提交类型的按钮,并在条件语句中使用它们。

即:

旁注:我删除了转义的引号,因为我不确定它们是否已经设置在回声中。

HTML表单:

<form method="post" action="handler.php">

    <button type="submit" name="passed" id="passed" class="btn btn-success btn-flat"><i class="fa fa-check"></i></button>
    <button type="submit" name="insufficient" id="insufficient" class="btn btn-danger btn-flat"><i class="fa fa-times"></i></button>

</form>

PHP:

<?php 

// db connection

if(isset($_POST['passed'])){

    $allowed = mysqli_query($conn," UPDATE users SET Access = "1" WHERE id = '27' ");

}

if(isset($_POST['insufficient'])){

    $notallowed = mysqli_query($conn," UPDATE users SET Access = "0" WHERE id = '453' ");

}

<强>脚注:

运行UPDATE查询时,最好使用mysqli_affected_rows()表示绝对真实性。

否则,您可能会误报。

答案 1 :(得分:0)

按钮在前端运行(javascript)但更新数据库的SQL正在后端运行(php),因此我们需要将这两个连接在一起。

function updateUserAccess(user_id, access) {
    var d = { user_id: user_id, access: access };
    $.post('update.php', d);
}

然后每个按钮看起来像这样:

<button type="button" id="passed" class="btn btn-success btn-flat" onclick="updateUserAccess(<?= $user->id ?>, 1)"><i class="fa fa-check"></i></button>
<button type="button" id="passed" class="btn btn-success btn-flat" onclick="updateUserAcces(<?= $user->id ?>, 0)"><i class="fa fa-check"></i></button>

您的查询将会显示在update.php中,您在d中传入的javascript数据将在$_POST中提供。

现在,所有这些都说了几件事:

  1. 我不确定为什么你的报价被逃脱,至少可以说这有点不寻常。除非你是mixing your logic and markup which isn't a good habit,否则几乎肯定没有必要。
  2. 虽然我给你的代码会起作用,但它也不是最佳的,因为我们通常希望将事件绑定与显示标记here it is in raw javascripthere in jquery (with some explanation)分开。
  3. 您不必使用AJAX来提交更改,因为Fred已经证明您可以使用表单进行更改。 AJAX不会导致页面刷新(除非您明确告诉它)表单通常会导致刷新的位置。
  4. 最后,根据您的需求/用例,我建议您先了解一下PHP中的现代框架及其提供的内容。对于专业Web开发(和“现代”php代码),他们使用/鼓励的模式远远优于用于创建Web应用程序的旧文件样式。查看“MVC模式”,使用它的一些框架是CodeIgniter,CakePHP和Laravel。所有这些都很容易进入并开始使用。