Получить идентификатор из формы

Номер порта всегда отличается на обоих концах

1
задан Zakaria Acharki 13 July 2018 в 12:01
поделиться

3 ответа

Вам нужно использовать ключевое слово this для ссылки на текущий элемент, нажав кнопку, затем перейдите к родительскому элементу и выберите соответствующий вход с именем idVal, который содержит if текущего продукта:

var product_id = $(this).parent().find('[name="idVal"]').val();

И вы должны передать this вашей функции в onClick:

<button type="button" onclick="addProductInCart(this)">Добавить в 

корзину

function addProductInCart(self) {
  event.preventDefault();

  alert($(self).parent().find('[name="idVal"]').val());
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form>
  <div class="col-lg-2 product">
    <h3>name 1</h3>
    <img src="" width="200" height="200"><br>
    <h3>111</h3>
    <button type="button" onclick="addProductInCart(this)">Добавить в корзину</button>
    <input type="hidden" name="idVal" value="1">
  </div>
</form>
<form>
  <div class="col-lg-2 product">
    <h3>name 2</h3>
    <img src="" width="200" height="200"><br>
    <h3>222</h3>
    <button type="button" onclick="addProductInCart(this)">Добавить в корзину</button>
    <input type="hidden" name="idVal" value="2">
  </div>
</form>
<form>
  <div class="col-lg-2 product">
    <h3>name 3</h3>
    <img src="" width="200" height="200"><br>
    <h3>333</h3>
    <button type="button" onclick="addProductInCart(this)">Добавить в корзину</button>
    <input type="hidden" name="idVal" value="3">
  </div>
</form>

1
ответ дан Zakaria Acharki 17 August 2018 в 13:02
поделиться
  • 1
    Теперь я получаю неопределенное значение – Андрей 13 July 2018 в 11:50
  • 2
    Обновлен мой ответ с помощью рабочего фрагмента – Zakaria Acharki 13 July 2018 в 11:59
  • 3
    Ваше решение работает, но обработчик также запускается повторно – Андрей 13 July 2018 в 12:07
  • 4
    Я удалил обработчик отправки. Теперь у меня есть только событие onclick. Все нормально? – Андрей 13 July 2018 в 12:08
  • 5
    Огромное спасибо) – Андрей 13 July 2018 в 12:19
<form class="product-form">
        <div class="col-lg-2 product">
            <h3>{{$p->name}}</h3>
            <img src="{{$p->image}}" width="200" height="200"><br>
            <h3>{{$p->price}}</h3>
            <button type="submit" onclick="addProductInCart(this)" >Добавить в корзину</button>
            <input type="hidden"  name = "idVal" value = "{{$p->id}}">
            {{ csrf_field() }}
        </div>
    </form>

Дайте форму классу. Теперь вы можете получить значения, связанные с ним.

$('.product-form').submit(function() {
  alert($(this).serialize());

 var product = 1;
    var token = $("input[name=_token]").val();
    $.ajax({
        type: "POST",
        url: "addToCart",
        data: {"_token": token, "product": product},
        success: function (result) {
            $("#product-count").html(result);

        }
    })

  return false;
});
1
ответ дан Adnan Mumtaz 17 August 2018 в 13:02
поделиться

вам не нужно хранить его в скрытом поле, чтобы извлечь его в функцию addproductInCart ()

, вы можете передать значение с funtion, как показано ниже:

addProductInCart(<?= $p->id ?>)

и в функции вы можете получить id, следуя

addProductInCart($id)
{
    alert($id);
}
1
ответ дан Rishi 17 August 2018 в 13:02
поделиться
  • 1
    Так просто, и я не думал об этом: D – Андрей 13 July 2018 в 12:17
  • 2
    Вы не можете использовать его таким образом, так как вам нужна дополнительная информация о нажатой кнопке, чтобы настроить соответствующую форму. – Zakaria Acharki 13 July 2018 в 12:18
Другие вопросы по тегам:

Похожие вопросы: