2015-06-01 3 views
3

У меня есть таблица html со списком Product Name и ID, после нажатия ссылки Product Name Link я хотел открыть Modal и показать Item относительно ID.Bootstrap Modal с данными mysql

Я хотел передать $ код модели и получить данные. Как мне это сделать?

Мой код ниже ..

<a href="#myModal" data-toggle="modal" data-target="#myModal" data-code="@<? echo $code; ?>">Product 1</a> 
<a href="#myModal" data-toggle="modal" data-target="#myModal" data-code="@<? echo $code; ?>">Product 2</a> 

<div class="modal 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-label="Close"><span aria-hidden="true">&times;</span></button> 
      <h4 class="modal-title" id="myModalLabel">Modal title</h4> 
     </div> 
     <div class="modal-body"> 
      <? 
       $code_id = isset($_GET['code']) ? $_GET['code'] : false; 
       $result = $db->prepare("SELECT * FROM $tbl_name WHERE id=:code LIMIT 1"); 
       $result->bindValue(':code', $code_id, PDO::PARAM_STR); 
       $result->execute(); 
       $row = $result->fetch(PDO::FETCH_ASSOC); 
       $unit = $row['unit']; $name = $row['name']; $price = $row['price']; 
       ?> 
      <table class="table"> 
       <tr> 
        <th style="text-align: center;">#</th> 
        <th style="text-align: center;">Unit</th> 
        <th style="text-align: center;">Product Name</th> 
        <th style="text-align: center;">Price</th> 
       </tr> 
       <tr> 
        <td><? echo $i; ?></td> 
        <td><? echo $unit; ?></td> 
        <td><? echo $name; ?></td> 
        <td><? echo $price; ?></td> 
       </tr> 
      </table> 
     </div> 
     <div class="modal-footer"> 
      <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
     </div> 
    </div> 
</div> 

+0

Я не уверен, что я понимаю, в чем вопрос, не работает ли ваш текущий код? – Epodax

+2

Вы должны использовать ajax для этого. – Daan

+0

Не могли бы вы мне помочь? coz Я не знаю, как данные $ _GET внутри Modal. Если Ajax, как реализовать? – tmariaz

ответ

0

data-target вашей ссылки будет определять, что модальный открыть. Таким образом, вам нужно связать атрибут data-target, указав атрибут class вашего модального номера с атрибутом data-target вашей ссылки.

Попробуйте это:

while(/* YOUR CONDITION FOR FETCHING DATA FROM YOUR DB */){ 
    ?> 
    <a href="#myModal" data-toggle="modal" data-target=".myModal<?php echo $uniqueid; ?>" data-code="@<? echo $code; ?>">Product 1</a> 
    <?php 

    <!-- START OF MODAL --> 
    <div class="modal fade myModal<?php echo $uniqueid; ?>" .....> 
    <!-- REST OF MODAL CODE --> 
    </div> 

} /* END OF LOOP */ 

Просто замените $uniqueid с первичным ключом.

+0

Это означает, что если у меня есть 100 продуктов, я создаю 100 модалов внутри этого цикла Loop. правильно? – tmariaz

+0

Пробовал этот код, но не повезло. :( – tmariaz

+0

@tmariaz - извините, я слишком поздно возвращаюсь к вам. Я обновил свой ответ, а 'class' вашего модального файла должен быть 'modal fade myModal ' Вместо 'modal fade bs- example-modal-lg '. Посмотрите на мой обновленный ответ. –

1

Я понял, что ответ Логана не будет работать, потому что он нацелился на классы вместо идентификаторов. data-target для каждой ссылки на модальный должен быть уникальный идентификатор. Я создал переменную $ uid (уникальный идентификатор) и инициализировал ее одним (в качестве альтернативы вы могли бы использовать свой первичный ключ). Каждый модальный будет иметь идентификатор myModal+$uid, и каждая ссылка укажет на определенный идентификатор модального.

<?php 
    $code_id = isset($_GET['code']) ? $_GET['code'] : false; 
    $result = $db->prepare("SELECT * FROM $tbl_name WHERE id=:code LIMIT 1"); 
    $result->bindValue(':code', $code_id, PDO::PARAM_STR); 
    $result->execute(); 

    //checks if there are results before sending it to the while loop 
    if ($result->num_rows > 0) { 
     $uid = 1;//alternatively you can use your primary key from the table 
     while($row = $result->fetch_assoc()){ 
?> 
<a href="#myModal" data-toggle="modal" data-target="#myModal<?php echo $uid; ?>" data-code="@<? echo $code; ?>">Product <?echo $uid?></a> 


    <!-- start modal, realise the id of each modal --> 
    <div class="modal fade" id="myModal<?php echo $uid; ?>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
    <div class="modal fade"> 
    <!--the rest of your code--> 
    </div> 

<?php 
     $uid = $uid +1;//increase uid   
     }// end while 

}//end if statement ?> 
Смежные вопросы