2017-12-18 81 views
1

,這一問題被創建爲我剛纔的問題中包含的,而不是縮小它下降到1PHP - SQL - 更新數據的按鈕點擊

目的

2問題當用戶選擇三個變量來訪問一個數據,用戶將能夠點擊一個按鈕來改變數據的一個細節。

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)        | 
|                | 
+---------------------------------------------------------------+ 
  • 傳奇

    下拉列表 - |> < |

    按鈕 - ()

    文本輸入 - {}


頁面描述

更新 butto n會將所選數據的「狀態」更改爲「待處理」。所以,如果讓我們說用戶搜索| Beta |約翰| 2016/11 |並點擊更新按鈕,該數據的「狀態」將從「官方」更改爲「待定」

但是,如果員工搜索「狀態」已經是「待定」的數據,例如,| Alpha |薩拉| 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。如果我的問題有任何缺乏或不準確的信息或問題,請告訴我。謝謝

+0

什麼是錯誤? –

+2

在提供的代碼中,不要將任何數據發送到服務器。無需更新/ –

+1

實際上,您需要通過ajax post方法發送所有數據,以便php代碼可以正常工作。您不會發送任何數據 –

回答

1

在你的If語句讓我們開始,但試圖看看你的所有變量是否正確地傳遞到你的查詢中,你可以通過編寫來完成。

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

在你的查詢之前,你的if語句。我注意到$class = trim($_POST['calss']);它應該是'class'嗎?或者說?

+0

是的,它是一個錯字,它應該是上課的,我會告訴你關於回聲的信息,我會很快編輯我的問題謝謝= D – Student

+0

沒有回聲這意味着什麼都沒有被髮送:( – Student

+0

另一行代碼看起來不錯是這樣的:if($ status =='update']))確保你修復了你的語法錯誤 – Oleeze

1

讓我與你的代碼說明你iitself

$("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請求,應在以下rewrtitten期待下面的變量給定語法。

上述ajax請求不包含任何後期參數。你應該添加數據屬性。看到下面的例子

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

希望這會有所幫助。由於

+0

我將編輯我的問題很簡單,謝謝您的回覆,我會嘗試一下並回復給您= D – Student

+0

如果它對您有幫助,請投票贊成 –

1

在jQuery的Ajax調用,通過場變量data財產JSON格式爲你的PHP腳本獲得使用$ _ POST字段變量值,使用type作爲後。

$.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"); 
    } 
}); 

在這裏,如果在Ajax調用data屬性傳遞你的PHP腳本將得到的值。在if條件中,檢查空變量並僅在值不爲空時更新。

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

if((!empty($status) && $status == 'update') && !empty($class) && !empty($teacher) && !empty($date) && !empty($empId)){ 
     $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"; 
    } 

    ?> 
+0

謝謝,我會試試這個並回復給您。很快編輯我的問題= D – Student