2015-03-15 2 views
0

Итак, у меня есть таблица результатов из SQL-запроса, и я хотел, чтобы все строки имели ссылку, которая вытягивает модальную дополнительную информацию на основе идентификатора строки (которая он получает от первичного ключа запроса). У меня возникло несколько проблем с этой работой.Динамическое обновление одного модального файла с помощью php/jquery

1: Модальное значение не загружается, когда я повторяю html. Он не превращает фон в серый цвет и не загружает фактический модальный. Я тестировал это вне эха в обычном html на странице, и он также не загружается. Это пугает мой взгляд, поскольку он непосредственно скопирован и вставлен со страницы, на которой я загружаюсь. (с другим идентификатором для модального и href = "")

2: У меня есть запрос в отдельном файле .php, и мой jquery, похоже, не отправляет идентификатор этого запроса.

Heres мой HTML/PHP на странице результатов:

<div class="container-fluid">       <!-- Table goes here: May require a neg margin to fit on page w/o scroll --> 
    <?php 
    $style = "style='text-align:right;'"; 
    // Display search result 
     if (!$count == 0) { 
       echo "<h3>Search: \"$num $name $state $medicarelos $medicaidlos $totlos\" returned $count results</h3>"; 
       ?> 

       <table id="resultTable" class="tablesorter"> 
       <thead> 
       <tr> 
       <th>Provider Number</th> 
       <th>Hospital Name</th> 
     <th>Provider State</th> 
       <th>Medicare Length of Stay</th> 
       <th>Medicaid Length of Stay</th> 
       <th>Overall Length of Stay</th> 
       </tr> 
       </thead> 
     <tbody> 
       <?php 

      while ($results = $query->fetch()) { 
       $id = $results['id']; 
       echo "<tr>";    
       echo "<td>".$results['provnum']; 
       echo "</td>"; 
       echo "<td><a id='$id' data-toggle='modal' href='#provmodal' class='push'>".$results['hospname']; 
       echo "</a>"; 
       echo "</td>"; 
       echo "<td>".$results['state']; 
       echo "</td>"; 
       echo "<td $style>".$results['medicarelos']; 
       echo "</td>"; 
       echo "<td $style>".$results['medicaidlos']; 
       echo "</td>"; 
       echo "<td $style>".$results['overalllos']; 
       echo "</td>"; 
       echo "</tr>"; 
       } 
       ?> 
       </tbody> 
       </table> 

       <?php  
     } else { 
      echo 'Nothing found'; 
     } 
     exit(); 
     ?> 
    </div> 

    <!-- Modal HTML --> 
    <div id="provmodal" class="modal fade"> 
     <div class="modal-dialog"> 
      <div class="modal-content"> 
       <div class="modal-header"> 
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 
        <h4 class="modal-title">Additional Information</h4> 
       </div> 
       <div class="modal-body"> 
        <p><?php echo $modalresults['id'];?></p> <!-- Relaying the ID here to test if the script is working --> 
       </div> 
       <div class="modal-footer"> 
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
       </div> 
      </div> 
     </div> 
    </div> 
<!-- END MODAL HTML --> 

Heres мой Java для отправки RowId к отдельному запросу:

<script type="text/javascript"> 
    $(document).ready(function() { 

    $(function(){ 

    $('.push').click(function(){ 
     var ele_id = $(this).attr('id'); 

     $.ajax({ 
      type : 'post', 
      url : 'modalquery.php', 
      data : 'post_id='+ ele_id, 

     success : function(r) 
      { 
       // now you can show output in your modal 
       $('div#provmodal').modal('show'); // put your modal id 
      $('.modal-body').modal('show').html(r); 
      } 
     }); 


       }); 

     }); 
    }); 
</script> 

и, наконец, вот мой PHP на modalquery. php page

<?php 
session_start(); 
require_once("link_imegme.php"); 
$id = $_POST['post_id']; 
$modalquery = $link->prepare("SELECT * FROM imegme WHERE id = :id"); 
$modalquery->bindParam(':id', $id, PDO::PARAM_INT); 
$modalquery->execute(); 
$modalresults = $modalquery->fetch()); 
?> 

Если кто-нибудь может помочь мне с любой из этих проблем (главным образом, почему он не может загрузить o На странице) Я, вероятно, мог бы понять, что остальное.

Вот глава страницы результатов, на которой вы думали, что я не смог включить файлы java или, возможно, что-то не в порядке?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta charset="utf-8"> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
<link href="/css/bootstrap.min.css" rel="stylesheet" type="text/css"/> 
<link href="/css/main.css" rel="stylesheet" type="text/css" /> 
<link href="/css/themes/blue/style.css" rel="stylesheet" type="text/css" /> 
    <!-- Start Java --> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script> 
<script type="text/javascript" src="/js/jquery.tablesorter.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
    $("#resultTable").tablesorter({widgets: ['zebra']}); 
}); 
</script> 
<?php 
session_start(); 
require_once("link_imegme.php"); 
?> 
<title>HDS: Medicare Disproportionate Share</title> 
</head> 

Я ценю любую информацию об этом. Спасибо

: EDIT: Хорошо, поэтому проблема с модальным отображением заключалась в том, что мой php-скрипт вышел за пределы} else {statement. Другой нерешенной проблемой пока является то, что мой модальный покажет, но $ modalresults ['id']; не вызывает ничего внутри модального.

+0

Я не вижу, где модальный диалог на вашей странице становится фактом, что вы нам не показывали. Какую модальность вы используете, диалог jQuery или что? –

+0

Прокрутите вниз в первом бите кода, его комментарий Habitat

ответ

2

что-то, как это будет работать с вами

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8"> 
<title>Example of Bootstrap 3 Modals</title> 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css"> 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap-theme.min.css"> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#myModal").modal('show'); 
    }); 
</script> 
</head> 
<body> 
<div id="myModal" class="modal fade"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 
       <h4 class="modal-title">Confirmation</h4> 
      </div> 
      <div class="modal-body"> 
       <p>Do you want to save changes you made to document before closing?</p> 
       <p class="text-warning"><small>If you don't save, your changes will be lost.</small></p> 
      </div> 
      <div class="modal-footer"> 
       <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
       <button type="button" class="btn btn-primary">Save changes</button> 
      </div> 
     </div> 
    </div> 
</div> 
</body> 
</html>  

в приведенном выше примере для того, чтобы внести изменения в содержание модального нужно выбрать (модальное тело), ​​так как это держать содержание как это

$("#myModal .modal-body").html(ajax_var); //insert your data 
$("#myModal").modal('show');        

надеюсь, что это поможет

// это может быть лучше использовать .modal («шоу») в качестве функции обратного вызова после .html закончить вставку данных .. что-то вроде этого

$("#myModal .modal-body").html(ajax_var).promise().done(function(){ 
     $("#myModal").modal('show'); 
    }); 

// EDIT я не пробовал, но обратите внимание, что ваш выход(); не внутри Else {} .. это может быть вашей проблемой, поскольку он всегда будет удален :)

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