[英]posting to database via ajax
我有一個js函數根據選擇的輸入字段中的值更新數據庫。 這是javascript函數:
function getStatusAction()
{
var matchId = $(this).attr('match-id');
var status = jQuery('#match-status').val();
jQuery.ajax({
url:'../core/match_stat.php',
type:'POST',
data:{matchId:matchId,status:status},
success: function(data){
//alert("Ok");
},
error: function(){
alert("Error..");
},
});
}
jQuery('select[name="match-status"]').change(getStatusAction);
HTML的一部分:
<tr>
<td>
<select class="input" name="match-status" match-id="<?=$ActiveMatch['id'];?>" id="match-status">
<option value="3" <?= (($ActiveMatch['status'] == '3')?'selected':'')?>> </option>
<option value="1" <?= (($ActiveMatch['status'] == '1')?'selected':'');?> >won</option>
<option value="2" <?= (($ActiveMatch['status'] == '2')?'selected':'');?> >lost</option>
</select>
</td>
</tr>
該函數應該分別獲取匹配的ID,例如1,2 ...和狀態,例如1,2,3分別表示寬松,獲勝和默認狀態。 問題是我只能更新第一行數據。 如果我嘗試對另一行數據執行此操作,則會使用第一個調用中的值。 例如,如果我將第一行狀態更新為獲勝,如果我嘗試更新第二行以使其松散,則它會更新為獲勝。 先前操作的狀態。 我該如何解決?
你可以試試
function getStatusAction(Element) //<< add parameter here
{
var matchId = $(Element).attr('match-id'); // <<< use it here
var status = jQuery('#match-status').val();
jQuery.ajax({
url:'../core/match_stat.php',
type:'POST',
data:{matchId:matchId,status:status},
success: function(data){
//alert("Ok");
},
error: function(){
alert("Error..");
},
});
}
jQuery('select[name="match-status"]').on('change' , function(){
getStatusAction(this); // << use the function here
});
注意: id應該是唯一的,因此,如果您只有一個id為match-status
元素,它是很好的..但是,如果您的select
s具有相同的id,則需要將id="match-status"
更改為class="match-status"
並更改var status = jQuery('#match-status').val();
到var status = $(Element).val();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.