Передача параметров записи с помощью jQuery.post - PullRequest
0 голосов
/ 29 апреля 2011

У меня есть обычный тег привязки, который привязан к $ .post (), но у меня возникают проблемы, когда я оборачиваюсь вокруг наилучшего способа передачи параметров.Вот что у меня есть:

<a 
href="ajax/tag_delete.php?id=<?php echo $tag->id;?>" <!-- This feels too "GET" and I don't want to have to parse this query string -->
id="<?php echo $tag->id;?>" <!-- this feels wrong, shouldn't have a number as an id  --> 
class="delete_tag_btn">
delete
</a>

<script>
    $('.delete_tag_btn').bind('click', function(event){
        event.preventDefault();
        $.post( this.href, {/* WHAT IS THE BEST WAY TO GET THESE */}, function(reply) {
            log(reply);
        });
    });
</scirpt>

Любая помощь очень ценится.Спасибо.

Ответы [ 2 ]

0 голосов
/ 29 апреля 2011

На самом деле, что должно работать. Возможно, вам придется удалить аргумент пустого объекта и переключиться на вызов .get ...

$.get(this.href, function(reply){
   // Do whatever
});

С другой стороны, вы всегда можете создать объект ...

var data = {
   id: $(this).attr('id')
}

Тогда передайте это в вашем вызове .post ...

$.post(this.href, data, function(reply){
   // Do whatever...
})
0 голосов
/ 29 апреля 2011

$(this).attr('href').split('=')[1]

Конечно, это зависит от того, что у вашего URL есть один параметр строки запроса. При необходимости вы можете немного поумнеть, но это решит вашу непосредственную проблему.

Edit:

$(document).ready(function(){
    $('.delete_tag_btn').bind('click', function(event){
        event.preventDefault();

        var s = $(this).attr('href').split('?')[1].split('&');
        var a = new Object();

        for(var n = 0; n < s.length; ++n)
        {
            var t = s[n].split('=');
            console.log(String(t[0]));
            a[String(t[0])] = t[1];
        }

        console.log(a);
    });
});

С учетом редактирования вы можете указать любое количество атрибутов в вашем href, которое затем будет передано вашему post. Другими словами, вы можете использовать эту функцию в любом месте во всем приложении, и вам не нужно указывать, какие ключи получить:

$.post( 
     this.href, 
     data: a, 
     function(reply) {
            log(reply);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...