如何在没有表单的情况下将变量传递给AJAX调用

时间:2012-11-22 15:05:00

标签: php jquery ajax codeigniter

我正在Code Igniter中构建应用程序,目前正在构建一些功能,用户可以通过单击页面上的勾选或十字图标来批准或拒绝页面上的请求。这些图标是锚标签。

我遇到的麻烦是将该单个请求的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变量的末尾添加'&amp; id = blahblahblah'。

有没有办法可以做到这一点,而不必使用表格代替锚标签?

3 个答案:

答案 0 :(得分:1)

您可以使用HTML5 data-* Attributes

<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'),

答案 1 :(得分:0)

您可以将ID存储在锚标记的数据属性中。

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

使用jquery获取allow anchor标记的存储值。

$val_allow = $('#allow').data('val'); // value 10 

答案 2 :(得分:0)

您可以尝试使用$ .post,并可以根据需要使用自定义参数!

    $.post({ 'holiday_request/authoriseRequest' , { check: someId , anotherParam: 1 } , 
function(response)
        {
            console.log(response);
        }
    });