Как передать значение в ссылку href Bootstrap Modal? - PullRequest
0 голосов
/ 12 января 2019

Я хочу очистить значения определенной таблицы, поэтому я хочу получить имя таблицы, используя модальный Bootstrap. Я хочу название таблицы в URL.

Это мой код: Здесь я отправляю название таблицы в модал

<ol class="breadcrumb text-center">
  <li class="breadcrumb-item">
     <a class="btn btn-primary" href="#scrapModal" data-toggle="modal" data-table="product1">Insert1</a>
     <a class="btn btn-primary" href="#scrapModal" data-toggle="modal" data-table="product2">Insert2</a>
     <a class="btn btn-primary" href="#scrapModal" data-toggle="modal" data-table="product3">Insert3</a>
     <a class="btn btn-primary" href="#scrapModal" data-toggle="modal" data-table="product4">Insert4</a>
</ol>

Я хочу передать значение внутри таблицы данных в href как clear.php? Clear_id = "table_name"

<div class="modal fade" id="scrapModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel1" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel1">Confirm Clear?</h5>
        <button class="close" type="button" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">×</span>
        </button>
      </div>
      <div class="modal-body">Are you sure you want to clear scrap for this table.</div>
      <div class="modal-footer">
        <button class="btn btn-secondary" type="button" data-dismiss="modal">Cancel</button>
        <a class="btn btn-danger" href="clear.php?clear_id=">Clear</a>
      </div>
    </div>
  </div>
</div>

Заранее спасибо!

Ответы [ 3 ]

0 голосов
/ 13 января 2019

Вы можете динамически изменять значение href кнопки «Очистить» в вашем модале, используя триггер события shown.bs.modal и создавая URL-адрес с атрибутом data-table, который имеется в вашем распоряжении, предоставленном свойством relatedTarget в событии. объект.

Я добавил явное нажатие кнопки, чтобы подчеркнуть это визуально.

$('#scrapModal').on('show.bs.modal', function (e) {
  var table = $(e.relatedTarget).data('table')
  var href = 'clear.php?clear_id=' + table
  $('.btn-danger', this).attr('href', href)
  console.log(href)
})

// Simulate "clear" button click to alert href value
$('#scrapModal .btn-danger').on('click', function (e) {
  e.preventDefault()
  alert(e.target.pathname + e.target.search)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" rel="stylesheet"/>

<ol class="breadcrumb text-center">
  <li class="breadcrumb-item">
     <a class="btn btn-primary" href="#scrapModal" data-toggle="modal" data-table="product1">Insert1</a>
     <a class="btn btn-primary" href="#scrapModal" data-toggle="modal" data-table="product2">Insert2</a>
     <a class="btn btn-primary" href="#scrapModal" data-toggle="modal" data-table="product3">Insert3</a>
     <a class="btn btn-primary" href="#scrapModal" data-toggle="modal" data-table="product4">Insert4</a>
  </li>
</ol>

<div class="modal fade" id="scrapModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel1" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel1">Confirm Clear?</h5>
        <button class="close" type="button" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&#215;</span>
        </button>
      </div>
      <div class="modal-body">
        Are you sure you want to clear scrap for this table.
      </div>
      <div class="modal-footer">
        <button class="btn btn-secondary" type="button" data-dismiss="modal">Cancel</button>
        <a class="btn btn-danger" href="#">Clear</a>
      </div>
    </div>
  </div>
</div>
0 голосов
/ 14 января 2019

Используйте следующие строки кода внутри тега скрипта, и это должно работать нормально.

$('#scrapModal .btn-danger').on('click', function (e) {
  e.preventDefault()
  alert(e.target.pathname + e.target.search)
})
0 голосов
/ 12 января 2019

Вы можете сделать это с помощью простого скрипта, подобного этому:

$('#scrapModal').on('show.bs.modal', function (event) {
  var table = $(event.relatedTarget).data('table');
  $(this).find('.btn-danger').attr("href", "clear.php?clear_id=" + table);
)}

Это будет работать, когда появится модальное. Было бы лучше присвоить кнопке подтверждения атрибут id для более элегантного поиска.

Более подробную информацию об изменении модального содержания вы можете найти здесь: https://getbootstrap.com/docs/4.0/components/modal/#varying-modal-content

...