@antonowano
Профессиональный самоучка

Перейти по ссылке с отправкой POST?

Вот эту форму:
<form action="url.php?id=123123" method="post">
    <textarea name="msg"></textarea>
    <button>Отправить</button>
</form>


Хочу переделать в ссылку:
<a href="url.php?id=123123" onclick="return send(this)">Отправить</a>

function send(el) {
    var url = el.getAttribute('href');
    var msg = prompt('Сообщение');
    // переходим по url с передачей POST'ом msg
    return false;
}
  • Вопрос задан
  • 5514 просмотров
Решения вопроса 1
@antonowano Автор вопроса
Профессиональный самоучка
Вот так вот:
function send(el) {
    var url = el.getAttribute('href');
    var msg = prompt('Сообщение');
    
   var form = document.createElement("form");
    form.setAttribute("method", 'post');
    form.setAttribute("action", url);

    var input = document.createElement("input");
    input.setAttribute("type", "hidden");
    input.setAttribute("name", 'msg');
    input.setAttribute("value", msg);

    form.appendChild(input);
    form.submit();
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
orlov0562
@orlov0562
I'm cool!
можно так сделать, я упростил, смысл думаю понятен:

<form action="" id="my_form" method="POST">
<input type="hidden" name="var" value="val">
</form>

<a href="#" onclick="document.getElementById('my_form').submit(); return false;">Test</a>
Ответ написан
Комментировать
Нет, переход по ссылке - всегда GET
Ответ написан
Комментировать
function send(el) {
    var url = el.getAttribute('href');
    var msg = prompt('Сообщение');
    // переходим по url с передачей POST'ом msg
          $.ajax({
                type: 'POST',
                url: 'url.php',
                data: 'name=' + name,
                cache: false,
                success: function(response) {
                    location.href = 'ссылка куда-то';
                },

                error: function(xhr, status, errorThrown) {
                    alert(errorThrown + '\n' + status + '\n' + xhr.statusText);
                }
            });

    return false;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы