Простейший пример отправки данных по ссылкам в Zend Framework - PullRequest
0 голосов
/ 13 марта 2012

Начиная с Zend, я хотел бы знать, каков самый простой способ отправки данных POST на другую страницу, не по формам, а по какой-то ссылке, на мой взгляд, вместо этого.Спасибо:)

Ответы [ 2 ]

0 голосов
/ 15 марта 2012

Обычные гиперссылки в HTML отправляются с GET-запросами и не должны изменять состояние ресурса, к которому осуществляется доступ. Это известно как идемпотент . Вы можете повторять запрос снова и снова, и результат каждого последующего запроса на тот же URL-адрес совпадает с первым.

POST-запросы не имеют этого ограничения и предназначены для случаев, когда пользователю необходимо что-то изменить (например, создать новый ресурс).

Невозможно отправить запрос POST по обычной HTML-ссылке. И даже если вы найдете способ, он нарушает почти универсальные ожидания, которые есть у веб-пользователей. Что вы пытаетесь достичь? Может быть, есть лучший способ.

Но чтобы ответить на ваш вопрос, вы можете использовать что-то вроде jQuery , чтобы захватить событие "click" и заставить его выполнить запрос POST:

$('.my-link').click(function() {
    var url = $(this).attr('href');
    var data = {};
    $.post(url, data, function() {
        window.alert('success!');
    });
    return false;
});

Если в вашем URL есть какие-либо параметры запроса, например, "? Foo = bar & baz = bum", то вам, вероятно, потребуется удалить их из URL-адреса и передать их в качестве второго параметра в $. Post ( ) функция . Это оставлено в качестве упражнения для читателя. ; -)

0 голосов
/ 15 марта 2012

Вы не можете отправить POST-данные по ссылке.По крайней мере, не по обычной ссылке.Ссылка может нести только данные GET.

Если вам нужно отправить POST по ссылке, это, безусловно, недостаток дизайна.

Если вы на 100% уверены, что вам это нужно, вы можете сделать это , используя jQuery и событие onclick.Невозможно сделать это без JavaScript.Другой вариант - отправить его, используя форму со скрытыми полями с видимой кнопкой «Отправить» - это будет работать даже без JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...