簡體   English   中英

通過ajax發布到數據庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM