0

ジャスフィドル

私はこれに苦労しています.....説明させてください

私は ajax を使用して db からデータを取得し、それを dataHolder div に追加しました - 今まではすべて問題ありませんでした - すべてのユーザーには年月日 -

たとえば、最初のユーザーのピーターに新しい日付を付けたい場合は、タグをクリックして確認し、年、月、日を選択します (これは最初のユーザーに対してのみ機能します)

2 番目のユーザー alex に新しい日付を指定したい場合は、タグの確認をクリックすると、クライアント ID のみを選択しますが、年と月と日は何もありません

みんな助けてください

//alert( 年 + 月 + 日 + cid); ユーザー cid のみを出力する

理解を深めるためにコードを示しましょう

$(document).ready(function() {

    $("#dataHolder").on('click', '.set', function() {

        var cid = $(this).attr('id')
        var year = $('#year').val();
        var month = $('#month').val();
        var day = $('#day').val();

        //alert( year + month + day + cid);

        $.ajax({
            url: 'confirm.php?id=' + cid + '&year=' + year + '&month=' + month + '&day=' + day,
            type: "POST",
            success: function(response) {
                console.log(response)
            }
        });
    });

    $('#btn').hide();

    $('#myform').on('change', function(e) {

        e.preventDefault();

        var select = $('#select').val();
        // ** console.log(select);

        var datasholder = $('#dataHolder').html('');

        $.ajax({
            type: 'POST',
            url: 'proccess.php',
            data: $(this).serialize(),
            success: function(data) {
                datasholder.append(data);
            }
        })
    })
})

// ** データが下に引き出された後

<div id="dataHolder">

    <table class="tablesorter bordered" id="myTable">
        <thead>
            <tr> 
                <th>No.</th>     
                <th>Client Name:</th>

            </tr>
        </thead>
        <tbody>
            <tr>
                <td>1</td>        
                <td>mohammed fathi</td>
                <td>

                    <input type="text" id="year" name="year" maxlength="4">&nbsp;

                    <select id="month" name="month">

                        <option value="">Select...</option>
                        <option value="01">January</option> 

                    </select>&nbsp;

                    <select style="width: 60px;" id="day" name="day">

                        <option value="">--</option>
                        <option value="01">01</option>
                        <option value="02">02</option>

                    </select>&nbsp;

                    <a style="cursor: pointer;" class="set" id="1">Confirm</a>  // ** confrim   
                </td>           
            </tr>  


            <tr>
                <td>1</td>        
                <td>mohammed fathi</td>
                <td>

                    <input type="text" id="year" name="year" maxlength="4">&nbsp;

                    <select id="month" name="month">

                        <option value="">Select...</option>
                        <option value="01">Jan</option> 
                        <option value="01">Feb</option> 

                    </select>&nbsp;

                    <select style="width: 60px;" id="day" name="day">

                        <option value="">--</option>
                        <option value="01">01</option>
                        <option value="02">02</option>

                    </select>&nbsp;

                    <a style="cursor: pointer;" class="set" id="2">Confirm</a>  // ** confrim   
                </td>           
            </tr> 


        </tbody>  
    </table>
</div>

//////// * **** 2回目の更新

$("#dataHolder").on('click','.set',function(){

              // do something

                 //var cid   = $(this).attr('id')
                 //var year  = $('#year').val();
                 //var month = $('#month').val();
                 //var day   = $('#day').val();

              var cid   = $(this).attr('id')
              var year  = $(this).siblings('.year').val();
              var month = $(this).siblings('.month').val();
              var day   = $(this).siblings('.day').val();


             alert( year + month + day + cid);

             $.ajax({
                url: 'confirm.php?id='+cid+'&year='+year+'&month='+month+'&day='+day, 
                type: "POST",
                success: function( response ){
                    console.log( response )
               }
            }); 
    });
4

1 に答える 1

0

各行で同じ ID を使用することはできません。(月と日も同様) に変更id="year"します。class="year"次に、コードを次のように変更します。

 var cid   = $(this).attr('id');
 var year  = $(this).siblings('.year').val();
 var month = $(this).siblings('.month').val();
 var day   = $(this).siblings('.day').val();
于 2013-05-26T09:13:04.550 に答える