2016-10-11 10 views
2

Ich möchte das Abfrageergebnis an Modal übergeben. Das Ergebnis enthält die Objektliste und die Beschreibung. Jede Zeile des Ergebnisses hat eine Gebotsschaltfläche. Die Schaltfläche "Bieten" öffnet das Modal mit den Informationen des Elements.Wert der Abfrage an Modal übergeben

Ich möchte die Details der entsprechenden Zeile im Modell anzeigen, was ich nicht kann.

Hier ist der Code.

<div class="col-lg-12"> 
<center> 
<table class="auction_det" style="width:100%;" border="1"> 
<th>ID</th> 
    <th>Item Name</th> 
    <th>Description</th> 
    <th>Cost</th> 
    <th>Current Bid</th> 
    <th>Close Date</th> 
    <th>Image</th> 
    <?php 
    if(!empty($results)) 
    { 

    foreach($results as $row) { 

    echo '<tr>'; 
    echo '<td id="id">'.$row->item_id.'</td>'; 
    echo '<td class="name">'.$row->name.'</td>'; 
    echo '<td class="desc">'.$row->item_desc.'</td>'; 
    echo '<td class="cost">'.$row->item_cost.'</td>'; 
    echo '<td class="open">'.$row->open_date.'</td>'; 
    echo '<td class="date">'.$row->close_date.'</td>'; 
    echo '<td class="img"><center><img style="width:300px;height:100px;"src='.$row->img_path.'></center></td>'; 
    ?> 
    <td><button type="button" class="btn" data-toggle="modal" data-target="#moreInfo">Bid</button></td><?php  
    echo '</tr>'; 

} 
} 
?> 
</table> 

Script

<script> 
    $(document).ready(){ 
     $('.btn').click(function(){ 
      var $row = $(this).closest('tr'); 
      var name = $row.find('.name').val(); 
      $('#name').text(name); 
      $('#moreInfo').modal('show'); 
     }); 
    });//END document.ready 
</script> 

Modal

<div class="modal fade" tab-index="-1" id="moreInfo" role="dialog" aria-labelledby="moreInfoLabel" aria-hidden="true"> 
     <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
      <h3>Item Details</h3> 
      <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 
      <h4 class="modal-title" id="moreInfoLabel"></h4> 
      </div> 
      <div="modal-body"> 
     <p>Name:<label id="name"> *QUERY RESULT HERE* </label></p> 
</div> 

+0

ich denke verwenden, sollten Sie '$ ('# name') verwenden innerHTML- (Name),.' – someone

+0

bereits versucht, mit innerHTML und Text. noch keine daten zeigten –

Antwort

1

ich den Code ändern und eine Demo erstellen:

Demo: https://jsfiddle.net/94yyar96/6/

$(document).on('click','.btn',function(){ 
     var row = $(this).closest('tr'); 
     var name = row.find('.name').text(); 
     $('#moreInfo').find('#name').html(name); 
     $('#moreInfo').modal('show'); 
    }); 

Für Bild Pass zur modalen:

$(document).on('click','.btn',function(){ 
     var row = $(this).closest('tr'); 
     var name = row.find('.name').text(); 
     $('#moreInfo').find('#name').html(name); 
     var img_url = row.find(".img img").attr("src"); //get image src 
     $('#moreInfo').append('<img src="+img_url+">'); //create img tag in #moreInfo 
     $('#moreInfo').modal('show'); 
    }); 

optimiertem Code:

$(document).on('click','.btn',function(){ 
     var row = $(this).closest('tr'); 
     $('#moreInfo').find('#name').html(row.find('.name').text()); 
     $('#name').after('<img src="'+row.find(".img img").attr("src")+'">'); //create img tag in #moreInfo 
     $('#moreInfo').modal('show'); 
    }); 

das Bild zu erstellen, können Sie stattdessen .after() von .html() oder .append() usw.

+0

Großartig! Aber jetzt habe ich ein anderes Problem. Ich muss auch ein Bild an das Modal übergeben. Wie kann ich den Parameter img src ändern? Ich habe es versucht. var imgpath = row.find ('.img'). Text(); // Ruft den Bildpfad von db ab $ ('# moreInfo img'). attr ("src", imgpath); // setzt img als src in modal img –

+0

@SahibUzZaman Der Antwort- und jsfiddle-Link wurde aktualisiert. –

+0

Großer Mann! Aber wenn ich das modale schließe und das modale wieder öffne (oder öffne das neue), dupliziert das Bild. Es wird so oft Duplizieren, wie ich die Bieten-Taste drücke, um das Modal zu öffnen. Was ich will, ist nur src des Bildes zu ändern. Das Tag wird nur im modalen Teil des Codes sein. –

2

Statt var name = $row.find('.name').val(); Verwendung:

var name = $row.find('.name').text(); oder var name = $row.find('.name').html();

+0

noch werden keine daten angezeigt. –