0

私はCodeIgniterでアプリケーションを構築しており、現在、ユーザーがページ上のチェックマークまたはクロスアイコンをクリックすることで、ページ上のリクエストを承認または拒否できるいくつかの機能を構築しています。これらのアイコンはアンカータグです。

私が抱えている問題は、その個々のリクエストのIDをAJAXフォームに渡すことです。この機能をフォームに実装しても問題はありません。これは、コントローラーから設定された値が保存されている非表示の入力フィールドを使用するだけだからです。これらのリクエストは多数存在する可能性がありますが、ビュー内でループされるため、常に独自のIDがあります。

フォームの代わりにアンカータグを使用しているため、そのリクエストのIDをマークアップのどこに保存できるかわかりません。コードは次のとおりです。

        <p><span class="bold">Authorise This Request?: </span></p>
            <p>
                <a href="" class="authorise" id="allow"><img src="/igniter/images/tick.png" /></a>
                <a href="" class="authorise" id="deny"><img src="/igniter/images/cross.png" /></a>
            </p>
        </div>
        <?php $i++; ?>
    <?php } ?>
</div>
<script type="text/javascript">
$(document).ready(function() {
    $('.authorise').click(function() {
        $.ajax({
            type: "POST",
            url: 'holiday_request/authoriseRequest',
            data: 'check=' + $(this).attr('id'),
            success: function(data) {

            }
        });
        return false;
    });
});
</script>

ご覧のとおり、入力フィールドのIDを使用して、後でそれを許可するか拒否するかを決定します。私がやりたいのは、現在コントローラーにあるリクエストのIDを渡すことができるようにすることです。そのため、AJAX呼び出しのURL変数の最後に「&id=blahblahblah」を追加します。

アンカータグの代わりにフォームを使用せずにこれを行う方法はありますか?

4

3 に答える 3

1

HTML5データを使用できます-*属性

<a href="" class="authorise" data-id="1" data-check="allow"><img src="/igniter/images/tick.png" /></a>
...

次に、値を取得してajaxデータパラメーターに追加します

data: 'check=' + $(this).data('check') + '&id=' + $(this).data('id'),
于 2012-11-22T15:10:08.830 に答える
0

IDはアンカータグのデータ属性に保存できます。

<a href="" class="authorise" id="allow" data-val="10"><img src="/igniter/images/tick.png" /></a>

jqueryを使用してallowanchorタグの保存された値を取得します。

$val_allow = $('#allow').data('val'); // value 10 
于 2012-11-22T15:16:35.667 に答える
0

$ .postを使用してみて、必要に応じてカスタムパラメータを設定できます。

    $.post({ 'holiday_request/authoriseRequest' , { check: someId , anotherParam: 1 } , 
function(response)
        {
            console.log(response);
        }
    });
于 2012-11-22T15:17:12.223 に答える