先從資料庫將資料全部撈出來做成一個資料表
每一筆資料後面有一個按鈕
程式碼大部分如下
table部分:
<table width="100%" border="1" cellspacing="0" cellpadding="2" align="center" id="list_table">
<?php
$get_item_sql = "select * from table_name where row_status !='deleted'";
while($item_row = mysql_fetch_array($get_item_result)){
?>
<td><?php echo $item_row['item_id'];?></td>
<td><?php echo $item_row['item_name'];?></td>
<td><?php echo $item_row['serial_number'];?></td>
<td><?php echo $item_row['accessories'];?></td>
<td><?php echo $item_row['custodian'];?></td>
<button id="receive_button" name="receive_button" style="color:#F00;" type="button" value="yes" onclick="already_receive()">接收</button>
</table>
<?php } ?>
$("#receive_button").click(function(){
$("#receive_button").hide();
});
ajax的部分
function already_receive(){
$.ajax({
url: 'tool_receive.php',
type: 'POST',
data : {
receive_status:'yes'
},
async: false,
success: function (data) {
alert("接收成功");
}
});
}
想更新的那筆資料,我是不是還需要將判斷的值也一併傳過去
tool_receive.php的部分
$receive_status = $_POST['receive_status'][$i];
$item_id = $_POST['item_id'][$i]; //用這個去判斷對應到哪一筆資料
mysql_query("update table_name set receive_status='".$receive_status."' where item_id='".$item_id."'");
目前卡在我怎麼把從資料庫撈出來對應到正確的item_id也傳去後端
感覺我表達的也不夠清楚
但需要的動作是按下後就會觸發事件並傳回值給資料庫
更新那筆資料的狀態(receive_status)
ajax裡的data少了item_id,不太確定該給他指定什麼樣的值
麻煩大大們幫忙了 謝謝!
例如
<button
id = "receive_button"
name = "receive_button"
style = "color:#F00;"
type = "button"
value = "yes"
onclick = "already_receive(<?php echo $item_row['item_id'];?>)"
>接收</button>
script
function already_receive(itemId){
// itemId 就可傳到後端
$.ajax({
url: 'tool_receive.php',
type: 'POST',
data : {
receive_status:'yes',
itemId,
},
async: false,
success: function (data) {
alert("接收成功");
}
});
}
php
$receive_status = $_POST['itemId'][$i];
這樣應該就 ok
沒實測過
我一直在想 $receive_status = $_POST['itemId'][$i];
為什麼要有 [$i]
可能是很多個吧
我是抄他的XD
為什麼要有 [$i]
那是原本的php
直接複製過來修改的,忘了現在我只需要一個
感謝大大給的提示
原本是想利用傳遞的方式
http://blog.wingzero.tw/2012/04/javascript-php-value.html
但看了一下Network 後端並沒有收到
又想 $item_id = $item_row['item_id'];
然後already_receive(item_id)
但跟龍大的比起來感覺多此一舉
於是改採用龍大的方法
但檢查的時候一直Uncaught ReferenceError: xxx is not defined at HTMLInputElement.onclick
沒詳細看,一直搞不懂為甚麼沒定義
原來是參數不是數字需要多個單引號
看來還是太淺ˊ_>ˋ
很感謝兩位大大的幫助!
<button
class="receive_button"
style = "color:#F00;"
type = "button"
value = "yes"
data-id = "<?=$item_row['item_id'];?>"
>接收</button>
$('.receive_button').on('click',function(){
$.ajax({
url: 'tool_receive.php',
type: 'POST',
data : {
receive_status:'yes',
item : this.setdata.id, // $(this).data(id)
},
async: false,
success: function (data) {
alert("接收成功");
}
});
}
我在想怎不用data傳ID 哈哈哈 這樣應該也可以
另外提醒一下 按鈕如果有多個 按鈕的id名稱不要重複喔 不然可能會出事 我常常被id搞到
感謝柯大的分享及提醒~
又學習到沒接觸過的新用法
https://pjchender.blogspot.com/2017/01/html-5-data-attribute.html
https://www.w3schools.com/tags/att_global_data.asp
https://blog.csdn.net/qq_41648132/article/details/80364335
https://blog.csdn.net/a1247529789/article/details/51470005?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
https://blog.csdn.net/lucky541788/article/details/81774046
順便記錄一下我找到的資料~