Как отправить ajax запрос по клику на кнопку?

283
09 июля 2018, 10:10

Мне нужно что бы при клике на кнопку One\two\three\etc... на сервер пришел ajax запрос с содержанием $_POST['name']=value; Никак не могу понять как сформировать data для ajax-запроса.

HTML-форма

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous"> 
<form class="form-inline d-inline" id="someId" method="post"> 
  <button class="dropdown-item btn" name="name" value="1">one</button> 
  <button class="dropdown-item btn" name="name" value="2">two</button> 
  <button class="dropdown-item btn" name="name" value="3">three</button> 
  <button class="dropdown-item btn" name="name" value="4">four</button> 
  <div class="dropdown-divider"></div> 
  <div class="input-group mx-2"> 
    <input type="text" class="form-control" name="name" placeholder="Количество"> 
    <div class="input-group-append"> 
      <button class="btn btn-outline-secondary" type="button"><i class="fas fa-arrow-alt-circle-right"></i></button> 
    </div> 
  </div> 
</form>

Answer 1

$(document).ready(function() { 
  $('button').click(function(e) { 
    // Stop form from sending request to server 
    e.preventDefault(); 
 
    var btn = $(this); 
 
    $.ajax({ 
      method: "POST", 
      url: "https://jsonplaceholder.typicode.com/posts", 
      dataType: "json", 
      data: { 
        "name": btn.val(), 
        'input': $('input').val() 
      }, 
      success: function(data) { 
        console.log(data); 
      }, 
      error: function(er) { 
        console.log(er); 
      } 
    }); 
  }) 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous"> 
<form class="form-inline d-inline" id="someId" method="post"> 
  <button class="dropdown-item btn" name="name" value="1">one</button> 
  <button class="dropdown-item btn" name="name" value="2">two</button> 
  <button class="dropdown-item btn" name="name" value="3">three</button> 
  <button class="dropdown-item btn" name="name" value="4">four</button> 
  <div class="dropdown-divider"></div> 
  <div class="input-group mx-2"> 
    <input type="text" class="form-control" name="name" placeholder="Количество"> 
    <div class="input-group-append"> 
      <button class="btn btn-outline-secondary" type="button"><i class="fas fa-arrow-alt-circle-right"></i></button> 
    </div> 
  </div> 
</form>

Answer 2
  ...
  <input name="name" class="inputForName" type="hidden" />
</form>
$('#someId .dropdown-item').click(function(e){
  e.preventDefault();
  var $form = $(this).closest("form");
  $form.find(".inputForName").val($(this).attr("value"));
  $.ajax({
    ...
    data: $form.serialize();
    ...
  });
  $form.find(".inputForName").val("");
});
Answer 3

У Вас одна форма, необходимо для каждого запроса делать свою.

Либо в противном случае попробуйте написать для каждой кнопки onclick="send_request(type)"

И далее через теги <script></script> вбить следующий код:

    $("#selector").load("/file.php", {param:value,param2:value2},function()
    {
        //actions after response
    });

Не забудьте считать value через $("selector").val();

READ ALSO
Добавить margin-left 20px если браузер mozilla

Добавить margin-left 20px если браузер mozilla

Нужно для определенного класса, добавить margin-left если открыт в браузере Mozilla Firefox Я пишут так:

162
Как с помощью расширения получать то что ввел пользователь и заменять?

Как с помощью расширения получать то что ввел пользователь и заменять?

Это не в корыстных целях,пользователь будет сам включать эту возможность в определенных моментахНужно любые введеные данные пользователя...

185
&lt;p:wizard&gt; jsf тег скрывает значение параметра?

<p:wizard> jsf тег скрывает значение параметра?

У меня есть jsf страница, в нее запросом передается входной параметр hideЯ могу его прочитать и использовать, но он становится недоступным и возвращает...

225
Как return&#39;уть это?

Как return'уть это?

Скорее всего, тут всё элементарно, но как return'уть 1-й элемент ArrayList'a?

248