1
我有一個表格,其中包含兩個用戶可以選擇批准或拒絕的按鈕。我正在使用jQuery .post()方法來更新一個MySQL數據庫與這個信息,它都可以正常工作。目前PHP只是迴應文本回應。如何使用jQuery Ajax更新表格行?
現在我想使用ajax刷新按鈕被點擊後的新信息表中的狀態字段。我不確定最好的方式去做這件事。應該從服務器端使用jQuery .get()獲取表,還是隻需更新狀態字段?
表
**Username Status Change Status**
Anderson no (decline button) (Add button)
julian yes (decline button) (Add button)
jQuery的
$(document).ready(function() {
$("#myForm2").submit(function(e) { //If add btn pressed
e.preventDefault();
var id = this.id;
var url = "process_ajax6.php";
var formdata = $(this).serialize();
formdata += "&btn=btn_add"; // added the btn
$.post(url, formdata,
function(data) {
$("#results").html(data); //Response
});
});
$("#myForm1").submit(function(e) { //If add btn pressed
e.preventDefault();
var id = this.id;
var url = "process_ajax6.php";
var formdata = $(this).serialize();
formdata += "&btn=btn_remove"; // added the btn
$.post(url, formdata,
function(data) {
$("#results").html(data); //Response
});
});
});
HTML表格和形式
echo "<tr>
<td>
<a href=\"profile.php?user_id=".$collab_userid." \"
<span class=\"label label-default\" id=\"tag\">".$collab_username."</span></a>
</td>
<td>
".$status."
</td>
<td>
<form id=\"myForm1\" class=\"myForm1\" action=\"\" method=\"post\" enctype=\"multipart/form-data\">
<input type=\"hidden\" name=\"user_id\" value=". $collab_userid." />
<input type=\"hidden\" name=\"id\" value=".$upload_id." />
<button type=\"submit\" id=\"btn_remove\" class=\"btn_remove\" name= \"btn_remove\">Remove</button>
</form>
</td>
<td>
<form id=\"myForm2\" class=\"myForm2\" action=\"\" method=\"post\" enctype=\"multipart/form-data\">
<input type=\"hidden\" name=\"user_id\" value=". $collab_userid." />
<input type=\"hidden\" name=\"id\" value=".$upload_id." />
<button type=\"submit\" id=\"btn_add\" class=\"btn_add\" name= \"btn_add\">Add</button>
</form>
</td>
</tr>";
}
"</tbody>
</table>";
在PHP
if ($btn=="btn_add") {
$status="yes";
$stmt = $db_conx->prepare('UPDATE tbl_collab SET approved=? WHERE collab_userid=? AND tbl_upload_id=?');
$stmt->bind_param('sss',$status,$user_id,$id);
$stmt->execute();
if($stmt){
echo "<p>user approved</p>";
}
}
elseif ($btn=="btn_remove"){
$status="no";
$stmt = $db_conx->prepare('UPDATE tbl_collab SET approved=? WHERE collab_userid=? AND tbl_upload_id=?');
$stmt->bind_param('sss',$status,$user_id,$id);
$stmt->execute();
if($stmt){
echo "<h1>user declined</h1>";
}
}
這種工作,但只是針對表的第一行。如果我給每個
其簡單的設置提交btn id像add_btn1然後設置每個td元素id像status_1然後在onClick函數獲取像這樣的數字:'var num = this.id.slice(7,this.id.length)'那麼你可以訪問td specefic對象,如下所示:'$(「#status _」+ num).htm()' – farhadamjady
感謝您的支持,我正在努力讓自己的頭腦清楚。 – JulianJ
我建議從服務器響應更新查詢返回新狀態,並使用它來更新$ .post回調中前端的狀態。
做到這一點最快的方法 - 就是狀態添加到回覆的DOM元素:
和$。員額回調接收到的數據的訪問是這樣的:
你應該標記td與狀態由smth訪問它
來源
2016-11-26 10:53:28 AlexandrX
我正在通過這個答案。該響應迴應「是 」,但我無法將它添加到dom中的表中。你是什麼意思「通過訪問它」?謝謝。 –
JulianJ
我的意思是你應該給你'td'的'id'例如。 @farhadamjady在你的問題的另一個答案中寫了這個例子 – AlexandrX
相關問題