2014-12-03 2 views
4

У меня есть PHP-код, который создает список из базы данных. Одним из элементов, которые я извлекаю из базы данных, является идентификатор строки. Я создаю список в следующем коде:Передача значения id из ahref в bootstrap modal php

<th>Cover Name</th> 
     <th>Sum Insured</th> 
     <th>Info</th> 
     <th style="width: 3.5em;"></th> 
    </tr> 
    </thead> 
    <tbody> 
    <?php while($row = mysql_fetch_array($query_set)) { ?> 
    <tr> 

     <td><?php echo $row['cover_name'] ?></td> 
     <td><?php echo 'R '.$row['sum_insured'] ?></td> 
     <td><?php echo $row['info'] ?></td> 
     <td> 
      <a href="cover-type.php?id=<?php echo $row['coverid']?>"><i class="fa fa-pencil"></i></a> 
     <a href="#myModal" onclick="<?php $coverid = $row['coverid'] ?>" role="button" data-toggle="modal"><i class="fa fa-trash-o"></i></a> 
     </td> 
    </tr> 
    <?php } ?> 
     </tbody> 
</table> 

синтаксис вызова #myModal

<a href="#myModal" onclick="<?php $coverid = $row['coverid'] ?>" role="button" data-toggle="modal"><i class="fa fa-trash-o"></i></a> 

, как вы можете увидеть якорь #myModal и onclick

После нажатия на якорь Я хотел бы передать $coverid к следующему myModal:

<div class="modal small fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
    <div class="modal-dialog"> 
    <div class="modal-content"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> 
      <h3 id="myModalLabel">Delete Confirmation</h3> 
     </div> 
     <div class="modal-body"> 
      <p class="error-text"><i class="fa fa-warning modal-icon"></i>Are you sure you want to delete the cover?<br>This cannot be undone.</p> 
     </div> 
     <div class="modal-footer"> 
      <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Cancel</button> 
      <a href="delete-cover.php?id=<?php echo $coverid ?>" class="btn btn-danger" >Delete</a> 
     </div> 
     </div> 
    </div> 
</div> 

я под впечатлением, что мне нужно, чтобы иметь некоторую форму скрытой переменной Javascript в

<a href="#myModal" onclick="<?php $coverid = $row['coverid'] ?>" role="button" data-toggle="modal"><i class="fa fa-trash-o"></i></a> and pass it to myModal window, but how do I do that ? 

ответ

2
  1. использует один модальный
  2. атрибут использования данных идентификатора магазина обложка ID: data-id="< ?php $coverid = $row['coverid'] ?>"
  3. добавить класс мусор значка, например class="trash"
  4. добавить идентификатор для Delete кнопки в модальном, например id="modalDelete"

и JQ:

// on clik trash icon  
$('.trash').click(function(){ 
    //get cover id 
    var id=$(this).data('id'); 
    //set href for cancel button 
    $('#modallCancel').attr('href','delete-cover.php?id='+id); 
}) 

http://jsfiddle.net/4j59z60e/4/

+0

Хороший ответ, и это сработало. спасибо – kya

+0

Во-первых, я не скопировал ваш ответ. Во-вторых, я ответил точно так, как предполагается, чтобы установить значение href, а не значение поля ввода. В-третьих, я привел пример JSFIDDLE и объясню важные части кода. Поэтому он принял мой ответ. На этом сайте у меня много ответов, чтобы показать, что у меня есть некоторые знания. Это случилось со мной в подобной ситуации, но я не жалуюсь. И, наконец, вы имеете право на ваше мнение, независимо от того, правы вы. – dm4web

-1

PHP выполняется на сервере, а JavaScript выполняется на клиенте. Этот код

<a href="#myModal" onclick="<?php $coverid = $row['coverid'] ?>" role="button" data-toggle="modal">...</a> 

фактически превращаются в

<a href="#myModal" onclick="" role="button" data-toggle="modal">...</a> 

, потому что PHP часть ничего не эхо.

Таким образом, вы будете лучше иметь так что-то вроде этого:

<a href="#myModal" onclick="show_dialog('<?php echo $row['coverid']; ?>')" role="button" data-toggle="modal">...</a> 

Если у вас есть PHP переменная $row определена и $row['coverid'], скажем, 1337, то этот HTML воздастся браузер:

<a href="#myModal" onclick="show_dialog(1337)" role="button" data-toggle="modal">...</a> 

Таким образом, если вы определяете функцию JavaScript show_dialog, она будет вызвана со значением от $row['coverid']. Единственный способ передать переменные от PHP к JavaScript - это отбросить их значения из PHP в том месте, где у вас есть код JavaScript.

Хорошая практика для этого использовать <script> блок где-то на верхней части страницы с следующим содержанием:

window.php_vars = window.php_vars || {}; 
window.php_vars.some_value = '<?php echo $some_value; ?>'; 
window.php_vars.some_other_value = '<?php echo $some_other_value; ?>'; 
window.php_vars.foo = '<?php echo 'bar'; ?>'; 

... но такой подход работает только для скалярных типов (INTS, строки и т.д.) ,

+0

Спасибо, теперь я понимаю это немного лучше.Теперь что будет в этой строке Delete? – kya

+0

@kya Я обновил ответ и добавил четвертую часть кода. –

+0

onclick = "show_dialog ('')" Это не сработает! – Milad

Смежные вопросы