PHP - SQL - 按钮上的更新数据单击

问题描述 投票:1回答:3

这个问题的创建是因为我之前的问题包含2个问题,而不是将其缩小到1

目标

当用户选择三个变量来访问数据时,用户将能够点击按钮来改变该数据的一个细节。

SQL - 数据库表(SchoolData)

+-----+--------+------------+------------+----------------+-----------+
|  ID |  Class |   Teacher  |  YearMonth |   Description  |   Status  |
+-----+--------+------------+------------+----------------+-----------+
|  1  |  Alpha |    Sara    |  2017/01   |  Good & Clean  |  Pending  |
+-----+--------+------------+------------+----------------+-----------+
|  2  |  Alpha |    Sara    |  2017/01   |  Has 30 Chairs |  Pending  |
+-----+--------+------------+------------+----------------+-----------+
|  3  |  Alpha |    Sara    |  2017/01   |  Has 30 Tables |  Pending  |
+-----+--------+------------+------------+----------------+-----------+
|  4  |  Alpha |    Sara    |  2017/01   |   5 Subjects   |  Pending  |
+-----+--------+------------+------------+----------------+-----------+
|  5  |  Beta  |    John    |  2016/11   |   Big & Clean  |  Official |
+-----+--------+------------+------------+----------------+-----------+
|  6  |  Beta  |    John    |  2016/11   |   New Student  |  Official |
+-----+--------+------------+------------+----------------+-----------+
|  7  |  Beta  |    John    |  2016/11   | Injured Student|  Official |
+-----+--------+------------+------------+----------------+-----------+
|  8  |  Beta  |    John    |  2016/11   |   6 Subjects   |  Official |
+-----+--------+------------+------------+----------------+-----------+

网页

+---------------------------------------------------------------+
|                                                               |
| |>Select Class<|   |>Select Teacher<|   |>Select Year/Month<| |
|                                                               |
|                         (Search)                              |
|                                                               |
|                                                               |
|>>>>>>>>>>>>>>>>>>>>>>>>>>INPUT<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<|
|                                                               |
|      {Class}           {Teacher}           {Description}      |
|                                                               |
|                                                               |
|                        (Update)                               |
|                                                               |
+---------------------------------------------------------------+
  • 传说 下拉列表 - |> <| 按钮 - () 文字输入 - {}

网页描述

“更新”按钮会将所选数据的“状态”更改为“待定”。因此,如果让我们说用户搜索| Beta |约翰| 2016/11 |点击“更新”按钮,该数据的“状态”将从“官方”更改为“待定”

但是,如果工作人员搜索“状态”已经“待定”的数据,例如| Alpha | Sara | 2017/01 |,则将禁用“更新”按钮。


HTML表格

<!--Those data are setting for checking data existance in the database -->
<input type="hidden" name="class" value=" <?php echo $class;  ?>" >
<input type="hidden" name="date" value=" <?php echo  $getDate;  ?>">
<input type="hidden" name="teacher" value=" <?php echo  $teacher;  ?>" >
<input type="hidden" id="inputStatus" name="status" value="">

更新按钮(HTML)

<td colspan="1" valign="bottom" align="left">
    <button type="button" class="btn btn-lg update" id="btnUpdate" name="update"> Enable Re-Submit </button>
</td>

更新按钮功能(JavaScript)

$(function (){
    $("button#btnUpdate").on('click', function (e){
        e.preventDefault();
        $("#inputStatus").val("update");
        $.ajax({
            type: 'post',
            url: 'changeClassStatus.php'
        });
    }
}

changeClassStatus.php(PHP)

<?php
  $class  = trim($_POST['calss']);
  $teacher = trim($_POST['teacher']);
  $date   = $_POST['date'];
  $date   = $date."/01";
  $status = $_POST['status'];
  $empId = $_POST['empId'];

    if($status == 'update'])){
        $sqlUpdate = mysqli_query($conn,"UPDATE SchoolData SET Status='Pending' WHERE (Class=$class AND Teacher=$teacher AND ID='".$id[$i]."' AND YEAR(MonthYear)= YEAR('$date') AND MONTH(MonthYear)= MONTH('$date'));";
        $sqlExecute=$conn->query($sqlUpdate)or exit("Error code ({$conn->errno}): {$conn->error}");

        echo "Data Status Changed";
    }
?>

问题描述

我已经实现了代码,但他们没有更新搜索数据的状态。当我单击“更新”按钮时,数据不会更新,也不会发生任何事情(无更改和无回显消息)

补充说明

这个问题与PHP - SQL - Disable, Hide or Enable Button based on Data有关。如果我的问题有任何缺乏或不准确的信息或问题,请告诉我。谢谢

javascript php jquery html mysql
3个回答
1
投票

让我用你的代码解释你自己

$("button#btnUpdate").on('click', function (e){
        e.preventDefault();
        $("#inputStatus").val("update");
        $.ajax({
            type: 'post',
            url: 'changeClassStatus.php'
        });
    }

在服务器端,PHp期望来自ajax post请求的以下变量

$class  = trim($_POST['calss']);
  $teacher = trim($_POST['teacher']);
  $date   = $_POST['date'];
  $date   = $date."/01";
  $status = $_POST['status'];
  $empId = $_POST['empId'];

所以你的ajax请求应该在下面给出的语法中重新编写。

上面的ajax请求不包含任何post参数。您应该向其添加数据属性。请参阅下面的示例

$.ajax({
    url: 'url',
    type: 'GET',
    data: { field1: "hello", field2 : "hello2"} ,
    contentType: 'application/json; 
    charset=utf-8'
});

希望这可以帮助。谢谢


1
投票

在你的If语句中,让我们开始尝试查看是否所有变量都正确地传递到您的查询中,您可以通过编写来完成此操作。

echo $class;
echo $teacher;
etc .... 

在查询之前的if语句内部。

我注意到qazxsw poi它应该是'班级'吗?还是上课?


1
投票

在jQuery ajax调用中,将字段变量以JSON格式传递给$class = trim($_POST['calss']);属性,因为php脚本使用$ _POST获取字段变量值,使用data作为post。

type

在这里,如果在ajax调用中传入$.ajax({ url: 'changeClassStatus.php', type: 'POST', data: { calss: "hello", teacher : "hello2", date : "01/01/2017", status: "Active", empId : 12 }, contentType: 'application/json; charset=UTF-8', success: function (response) { console.log(response.status); }, error: function () { alert("error"); } }); 属性,则php脚本将获取值。在if条件下,检查空变量并仅在值不为空时更新。

data
© www.soinside.com 2019 - 2024. All rights reserved.