0

このちょっとしたコードを持ってください。このページリストには、チームメンバーから提出された申請書が残されており、マネージャーは申請書を承認または却下できます。ページの流れは次のとおりです。

  1. ページショーでは、getLeaveDetails()が呼び出されます
  2. getLeaveDetails()は、$。ajaxを使用して/webservices/getPendingLeaveApps.ashxを呼び出します
  3. 成功すると、showForm(data、textStatus、jqXHR)が呼び出されます-これは正常に機能します
  4. showFormは内部にマークアップを作成します-これは正常に機能します
  5. 実行時に作成されるマークアップにはボタンが含まれています-これは正常に機能します
  6. 「承認」と「拒否」の2つのボタンは、それぞれの関数approveLeave(iID)とrejectLeave(iID)を呼び出します。もちろん、IDを渡して承認または拒否します。これも機能します。
  7. approveLeave(iID)とrejectLeave(iID)は、次に$ .ajaxを使用して.ASHXページを呼び出し、アクションを処理するためのASHXのパラメーターとしてIDを渡します-ページで選択されたとおりに承認または拒否します-これはそうではありません働く

私は何が間違っているのですか?それとも、誰もが提案できるより良い構造がありますか?どんな援助も大歓迎です。JSとHTMLの経験はまったくありません。

どうもありがとう

幸運をお祈りしています

Iyer

<div data-role="page"  id="pLeave" data-add-back-btn="true"  data-back-btn-text="Home">
<script type="text/javascript">
    $('#pLeave').live('pageshow', function () {
        getLeaveDetails() ;
    }) ;

    function getLeaveDetails() {
        $.ajax({
            type: 'POST',
            data: {numRows: 10},
            url: '/webservices/getPendingLeaveApps.ashx', 
            success: function(data, textStatus, jqXHR) {
                showForm(data, textStatus, jqXHR) ;
            },
            error: function(jqXHR, textStatus, errorThrown) {
                alert('error' + textStatus + ' ' + errorThrown + ' ' + jqXHR.status + ' ' + jqXHR.statusText + ' ' + jqXHR.data + ' ' + jqXHR.responseText);
                //$("#result_labels").append('<p> textStatus ' + textStatus + '</p>') ;
            }
        });
    }

    function showForm(data, textStatus, jqXHR) {
        $("#resultsArea").html("") ;
        var h = '' ;
        for (i = 0; i < data.length; i++) {
            h = h + '<ul data-role="listview" data-inset="true">' ;
            h = h + '<li>' ;
            h = h + '<p><strong>' + data[i].empName + '</strong></p>' ;
            h = h + '<p><strong>'  + data[i].designation +'</strong></p>' ;
            h = h + '<p><strong> Applied for ' + data[i].noOfDays + ' days of ' + data[i].category + ' leave' ;
            h = h + '<p><strong> From ' + data[i].startDate + ' To ' + data[i].endDate + '</strong></p>' ;
            h = h + '<input type="button" value="Approve" data-inline="true" onclick="approveLeave(' + data[i].id + ');" />' ;
            h = h + '<input type="button" value="Reject" data-inline="true"  onclick="rejectLeave(' + data[i].id + ');" />' ;
            h = h + '</li></ul>' ;
        }
        $("#resultsArea").html(h) ;
        $("#resultsArea").trigger("create");
    }
    function approveLeave(iID) {
        $.ajax({
            type: 'POST',
            data: {id: iID, action: "A"},
            url: '/webservices/mob_processLeave.ashx', 
            success: function(data, textStatus, jqXHR) {
                //showForm(data, textStatus, jqXHR) ;
                getLeaveDetails() ;
            },
            error: function(jqXHR, textStatus, errorThrown) {
                alert('error' + textStatus + ' ' + errorThrown + ' ' + jqXHR.status + ' ' + jqXHR.statusText + ' ' + jqXHR.data + ' ' + jqXHR.responseText);
                getLeaveDetails() ;
            }
        });
    }
    function rejectLeave(iID) {
        $.ajax({
            type: 'POST',
            data: {id: iID, action: "R"},
            url: '/webservices/mob_processLeave.ashx', 
            success: function(data, textStatus, jqXHR) {
                //showForm(data, textStatus, jqXHR) ;
                getLeaveDetails() ;
            },
            error: function(jqXHR, textStatus, errorThrown) {
                alert('error' + textStatus + ' ' + errorThrown + ' ' + jqXHR.status + ' ' + jqXHR.statusText + ' ' + jqXHR.data + ' ' + jqXHR.responseText);
                getLeaveDetails() ;
            }
        });
    }
</script>
<div data-role="header">
    <h1>Leave Apps</h1>
</div><!-- /header -->
<div data-role="content">   
    <div class="content-primary">
        <div id="resultsArea">
        </div>
    </div>
</div><!-- /content -->

4

1 に答える 1

0

それは今動いています - 本当に、本当にばかげた間違いです - この最も有用なグループにスパムを送って申し訳ありません. mob_processLeave.ashx に間違ったパラメーターが渡されました。コーディングを開始してパラメーターを標準化する前に、すべてを書き留めるもう 1 つの適切な例です。2 番目のパラメーターとして「A」ではなく「承認」を渡す必要があります。

data: {id: iID, action: "approve"},
url: '/webservices/mob_processLeave.ashx',

ただし、コード スニペットが誰かの役に立てば幸いです。

幸運をお祈りしています

イヤル

于 2012-08-10T09:23:25.940 に答える