Показывать данные на основе модального щелчка

#php #bootstrap-4

Вопрос:

Я сделал цикл while для отображения данных в табличном формате, я подготовил lt;agt; , когда щелкнул, он открывает модальный. Я хочу, чтобы у каждого модала было больше информации об этих конкретных данных при нажатии.

Вот как я все подготовил:

 lt;?php   $mysqli = new mysqli('localhost', 'mushref', 'Almadina1!', 'security_db')  or die('Dramatic Error: ' . mysqli_error($mysqli));   $selectquery = "SELECT * FROM cases_reports";  $query = mysqli_query($mysqli, $selectquery);  $nums = mysqli_num_rows($query);   while($res = mysqli_fetch_array($query)) {  ?gt;  lt;trgt;  lt;td class="name mb-0 text-sm"gt; lt;?php echo $res['cccEmployee']?gt; lt;/tdgt;  lt;tdgt; lt;?php echo $res['irNumber']?gt; lt;/tdgt;  lt;tdgt; lt;a href="#" data-toggle="modal" data-target="#modal-default"gt;lt;?php echo $res['caseType']?gt;lt;/agt; lt;/tdgt;  lt;tdgt; lt;?php echo $res['startDateTime']?gt; lt;/tdgt;  lt;tdgt; lt;?php echo $res['endDateTime']?gt; lt;/tdgt;  lt;tdgt;  lt;div class="dropdown"gt;  lt;a class="btn btn-sm btn-icon-only text-light" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"gt;  lt;i class="fas fa-ellipsis-v"gt;lt;/igt;  lt;/agt;  lt;div class="dropdown-menu dropdown-menu-right dropdown-menu-arrow"gt;  lt;a class="dropdown-item" href="#"gt;Print PDFlt;/agt;  lt;a class="dropdown-item" href="#"gt;Export Excellt;/agt;  lt;a class="dropdown-item" href="#"gt;Export Accesslt;/agt;  lt;/divgt;  lt;/divgt;  lt;/tdgt;  lt;/trgt;   lt;div class="modal fade" id="modal-default" tabindex="-1" role="dialog" aria-labelledby="modal-default" aria-hidden="true"gt;  lt;div class="modal-dialog modal- modal-dialog-centered modal-" role="document"gt;  lt;div class="modal-content"gt;    lt;div class="modal-header"gt;  lt;h6 class="modal-title" id="modal-title-default"gt; lt;?php echo $res['caseType']?gt; lt;/h6gt;  lt;button type="button" class="close" data-dismiss="modal" aria-label="Close"gt;  lt;span aria-hidden="true"gt;×lt;/spangt;  lt;/buttongt;  lt;/divgt;   lt;div class="modal-body"gt;  lt;?php   echo $res['caseType'];  ?gt;  lt;/divgt;   lt;/divgt;  lt;?php }?gt; lt;!-- End php While --gt;  

Конечно, модал показывает первые доступные данные, которые в данном случае «случайны». Как я могу показать информацию о каждых данных при нажатии на модальный URL-адрес?

Ответ №1:

просто вызовите свой модальный программный код из js и загрузите/замените соответствующие данные, прежде чем показывать модальный.

 lt;a href="#" id="modalLuncher"gt;lt;?php echo $res['caseType']?gt;lt;/agt;  

и в вашем файле js :

 $(document).ready(function(){  $("#modalLuncher").click(function(){    $("#modal-title-default").html('read from #modalLuncher data-* tag');  // $("#other-replacements") ;   $("#modal-default").modal();  }); });  

Комментарии:

1. Спасибо! он показывает данные, но только первая ссылка таблицы открывает модальную, остальные не будут

2. поэтому дайте класс .modalLuncher любой ссылке , которую вы хотите открыть модально, измените $(«#modalLuncher»).нажмите( … ) на $(«.modalLuncher»).нажмите( … ) и прочитайте/загрузите/замените модальные данные из одного определенного тега .

3. Хорошо, модальный отображается во всех тегах, но….модальный показывает информацию о первых данных

4. замените модальные данные перед открытием модального . Я привел пример в ответе для вас . в этом примере вы измените модальный заголовок в зависимости от строки, на которую вы нажмете .

5. мне жаль… Я пробовал разные методы, но так и не смог этого понять 🙁

Ответ №2:

Я хотел показать модальный, чтобы я мог редактировать таблицу Ajax.

Вот что я сделал:

Скрипт:

 $(document).ready(function() {  // Append values in input fields  $(document).on('click', 'a[data-role=update]', function(){  var id = $(this).data('id');  var cccEmployee = $("#" id).children('td[data-target=cccEmployee]').text();  var irNumber = $("#" id).children('td[data-target=irNumber]').text();  var caseType = $("#" id).children('td[data-target=caseType]').text();  var startDateTime = $("#" id).children('td[data-target=startDateTime]').text();  var endDateTime = $("#" id).children('td[data-target=endDateTime]').text();   //Append the variables  $('#cccEmployee').val(cccEmployee);  $('#IR_number').val(irNumber);  $('#case_type').val(caseType);  $('#startDate').val(startDateTime);  $('#endDate').val(endDateTime);  $('#caseId').val(id);   $('#reportsModal').modal('toggle');  });   //Create event to get data from fields and update.  $('#save_report_changes').click(function() {  var id = $('#caseId').val();  var cccEmployee = $('#cccEmployee').val();  var irNumber= $('#IR_number').val();  var caseType = $('#case_type').val();  var startDateTime = $('#startDate').val();  var endDateTime = $('#endDate').val();   $.ajax({  url: '/edit-report',  method: 'post',  data: {  id: id,  cccEmployee: cccEmployee,  irNumber: irNumber,  caseType: caseType,  startDateTime: startDateTime,  endDateTime: endDateTime  },  success: function(response) {    $("#" id).children('td[data-target=cccEmployee]').text(cccEmployee);  $("#" id).children('td[data-target=irNumber]').text(irNumber);  $("#" id).children('td[data-target=caseType]').text(caseType);  $("#" id).children('td[data-target=startDateTime]').text(startDateTime);  $("#" id).children('td[data-target=endDateTime]').text(endDateTime);    $('#reportsModal').modal('toggle');  },  });  });  });  

Затем создал цикл while в php для отображения данных привязка кнопки редактирования к ajax:

 lt;!-- Start PHP While --gt; lt;?php  $mysqli = new mysqli('localhost', 'mushref', 'Almadina1!', 'security_db') or die('Dramatic Error: ' . mysqli_error($mysqli));  if( isset($_POST['id']) ) {  $id = $_POST['id'];  $ccc_employee = $_POST['cccEmployee'];  $IR_number = $_POST['irNumber'];  $case_type = $_POST['caseType'];  $caseLocation = $_POST['caseLocation'];  $startDate = $_POST['startDateTime'];  $endDate = $_POST['endDateTime'];  $case_description = $_POST['caseDesc'];  $action_taken = $_POST['actionsTaken'];  $details = $_POST['caseDetails'];  $notes = $_POST['caseNotes'];  $recommendation = $_POST['caseRecommendation'];   // Query to update data  $result = mysqli_query($mysqli, "UPDATE cases_reports SET  cccEmployee='$ccc_employee',  irNumber='$IR_number',  caseType='$case_type',  caseLocation='$caseLocation',  startDateTime='$startDate',  endDateTime='$endDate',  caseDesc='$case_description',  actionsTaken='$action_taken',  caseDetails='$details',  caseNotes='$notes',  caseRecommendation='$recommendation'  WHERE id='$id'");   if( $result ) {  return "Data updated successfully";  } }  $selectquery = "SELECT * FROM cases_reports";  $table = mysqli_query($mysqli, $selectquery); $nums = mysqli_num_rows($table);  while($res = mysqli_fetch_array($table)) { ?gt;  lt;tr id="lt;?php echo $res['id']?gt;"gt; lt;td data-target="cccEmployee"gt; lt;?php echo $res['cccEmployee']?gt; lt;/tdgt; lt;td data-target="irNumber"gt; lt;?php echo $res['irNumber']?gt; lt;/tdgt; lt;td data-target="caseType"gt; lt;?php echo $res['caseType']?gt; lt;/tdgt; lt;td data-target="startDateTime"gt; lt;?php echo $res['startDateTime']?gt; lt;/tdgt; lt;td data-target="endtDateTime"gt; lt;?php echo $res['endDateTime']?gt; lt;/tdgt; lt;td class="table-actions"gt;  lt;a href="#" data-role="update" data-id="lt;?php echo $res['id']; ?gt;"gt;  lt;i class="fas fa-edit"gt;lt;/igt;  lt;/agt;  lt;!-- lt;a href="#!" class="table-action table-action-delete" data-toggle="tooltip" data-original-title="Delete product"gt;  lt;i class="fas fa-trash"gt;lt;/igt;  lt;/agt; --gt; lt;/tdgt; lt;tdgt;  lt;div class="dropdown"gt;  lt;a class="btn btn-sm btn-icon-only text-light" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"gt;  lt;i class="fas fa-ellipsis-v"gt;lt;/igt;  lt;/agt;  lt;div class="dropdown-menu dropdown-menu-right dropdown-menu-arrow"gt;  lt;a class="dropdown-item" href="#"gt;Print PDFlt;/agt;  lt;a class="dropdown-item" href="#"gt;Export Excellt;/agt;  lt;a class="dropdown-item" href="#"gt;Export Accesslt;/agt;  lt;/divgt;  lt;/divgt; lt;/tdgt; lt;/trgt;  lt;div class="modal fade" id="reportsModal" tabindex="-1" role="dialog" aria-hidden="true"gt; lt;div class="modal-dialog modal- modal-dialog-centered modal-" role="document"gt;  lt;div class="modal-content"gt;  lt;div class="modal-header"gt;  lt;h6 class="modal-title" id="modal-title-default"gt; Case Details lt;/h6gt;  lt;button type="button" class="close" data-dismiss="modal" aria-label="Close"gt;  lt;span aria-hidden="true"gt;×lt;/spangt;  lt;/buttongt;  lt;/divgt;   lt;div class="modal-body" id="case-data"gt;  lt;div class="form-row"gt;  lt;div class="col-md-6 mb-3"gt;  lt;div class="form-group"gt;  lt;label class="form-control-label" for="cccEmployee"gt;CCC Employeelt;/labelgt;  lt;input type="text" class="form-control" id="cccEmployee" name="cccEmployee"gt;  lt;/divgt;  lt;/divgt;  lt;div class="col-md-6 mb-3"gt;  lt;div class="form-group"gt;  lt;label class="form-control-label" for="IR_number"gt;IR Numberlt;/labelgt;  lt;div class="input-group"gt;  lt;div class="input-group-prepend"gt;  lt;span class="input-group-text" id="IR_number"gt;IR#lt;/spangt;  lt;/divgt;  lt;input type="number" class="form-control" name="IR_number" id="IR_number"gt;  lt;/divgt;  lt;/divgt;  lt;/divgt;  lt;div class="col-md-6 mb-3"gt;  lt;div class="form-group"gt;  lt;label class="form-control-label" for="case_type"gt;Case Typelt;/labelgt;  lt;select class="form-control" name="case_type" id="case_type" data-toggle="select"gt;  lt;option value="" disabled selectedgt;Select Case Typelt;/optiongt;  lt;option value="Accident"gt;Accidentlt;/optiongt;  lt;option value="Theft"gt;Theftlt;/optiongt;  lt;option value="Death"gt;Deathlt;/optiongt;  lt;option value="Harrasment"gt;Harrasmentlt;/optiongt;  lt;option value="badBehaviour"gt;Bad Behaviourlt;/optiongt;  lt;option value="Drugs"gt;Drugslt;/optiongt;  lt;option value="Drunk"gt;Drunklt;/optiongt;  lt;option value="Fight"gt;Fightlt;/optiongt;  lt;option value="Medical"gt;Medicallt;/optiongt;  lt;option value="illegalEntry"gt;Illegal Entrylt;/optiongt;  lt;option value="illegalWorker"gt;Illegal Workerlt;/optiongt;  lt;option value="Fire"gt;Firelt;/optiongt;  lt;option value="Electric"gt;Electriclt;/optiongt;  lt;option value="illegalHunting"gt;Illegal Huntinglt;/optiongt;  lt;option value="oilLeak"gt;Oil Leaklt;/optiongt;  lt;option value="petrolLeak"gt;Petrol Leaklt;/optiongt;  lt;option value="Kidnapping"gt;Kidnappinglt;/optiongt;  lt;option value="Blackmail"gt;Blackmaillt;/optiongt;  lt;option value="Misunderstanding"gt;Misunderstandinglt;/optiongt;  lt;option value="propertyDamage"gt;Property Damagelt;/optiongt;  lt;option value="smoke_NoFire"gt;Smoke, No Firelt;/optiongt;  lt;option value="stuck_InElevator"gt;Stuck in Elevatorlt;/optiongt;  lt;option value="Scooter"gt;Scooterlt;/optiongt;  lt;option value="Drifting"gt;Driftinglt;/optiongt;  lt;option value="LostPerson"gt;Lost Personlt;/optiongt;  lt;option value="Fraud_Forgery"gt;Fraud/Forgerylt;/optiongt;  lt;option value="Other"gt;Otherlt;/optiongt;  lt;/selectgt;  lt;/divgt;  lt;/divgt;  lt;div class="col-md-6 mb-3"gt;  lt;div class="form-group"gt;  lt;label class="form-control-label" for="caseLocation"gt;Locationlt;/labelgt;  lt;select class="form-control" name="caseLocation" id="caseLocation" data-toggle="select"gt;  lt;option value="" disabled selectedgt;Select Locationlt;/optiongt;  lt;option value="Baylasun"gt;Baylasunlt;/optiongt;  lt;option value="Baylasun Hotel"gt;Baylasun Hotellt;/optiongt;  lt;option value="AL-Waha"gt;AL-Wahalt;/optiongt;  lt;option value="Al-Morooj"gt;Al-Moroojlt;/optiongt;  lt;option value="Royal Green"gt;Royal Greenlt;/optiongt;  lt;option value="Beach Towers"gt;Beach Towerslt;/optiongt;  lt;option value="Emmar Building"gt;Emmar Buildinglt;/optiongt;  lt;option value="Industrial Area (East)"gt;Industrial Area (East)lt;/optiongt;  lt;option value="Industrial Area (West)"gt;Industrial Area (West)lt;/optiongt;  lt;option value="Hejaz Gate"gt;Hejaz Gatelt;/optiongt;  lt;option value="Gate 3"gt;Gate 3lt;/optiongt;  lt;option value="Marina 1"gt;Marina 1lt;/optiongt;  lt;option value="Marina 2"gt;Marina 2lt;/optiongt;  lt;option value="Marina 3"gt;Marina 3lt;/optiongt;  lt;option value="Tala Garden"gt;Tala Gardenlt;/optiongt;  lt;option value="AL-Shorooq"gt;AL-Shorooqlt;/optiongt;  lt;option value="Yam Beach"gt;Yam Beachlt;/optiongt;  lt;option value="Sales Center"gt;Sales Centerlt;/optiongt;  lt;/selectgt;  lt;/divgt;  lt;/divgt;  lt;div class="col-md-6 mb-3"gt;  lt;div class="form-group"gt;  lt;label class="form-control-label" for="startDate"gt;Start Date amp; Timelt;/labelgt;  lt;input class="form-control" type="datetime-local" name="startDate" id="startDate"gt;  lt;/divgt;  lt;/divgt;  lt;div class="col-md-6 mb-3"gt;  lt;div class="form-group"gt;  lt;label class="form-control-label" for="endDate"gt;End Date amp; Timelt;/labelgt;  lt;input class="form-control" type="datetime-local" name="endDate" id="endDate"gt;  lt;/divgt;  lt;/divgt;  lt;div class="col-md-12 mb-3"gt;  lt;div class="form-group"gt;  lt;label class="form-control-label" for="case_description"gt;Case Descriptionlt;/labelgt;  lt;textarea class="form-control" name="case_description" id="case_description" rows="3"gt;lt;/textareagt;  lt;/divgt;  lt;/divgt;  lt;div class="col-md-12 mb-3"gt;  lt;div class="form-group"gt;  lt;label class="form-control-label" for="action_taken"gt;Actions Takenlt;/labelgt;  lt;textarea class="form-control" name="action_taken" id="action_taken"gt;lt;/textareagt;  lt;/divgt;  lt;/divgt;  lt;div class="col-md-12 mb-3"gt;  lt;div class="form-group"gt;  lt;label class="form-control-label" for="details"gt;Detailslt;/labelgt;  lt;textarea class="form-control" name="details" id="details"gt;lt;/textareagt;  lt;/divgt;  lt;/divgt;  lt;div class="col-md-12 mb-3"gt;  lt;div class="form-group"gt;  lt;label class="form-control-label" for="notes"gt;Noteslt;/labelgt;  lt;textarea name="notes" id="notes" class="form-control"gt;lt;/textareagt;  lt;/divgt;  lt;/divgt;  lt;div class="col-md-12 mb-3"gt;  lt;div class="form-group"gt;  lt;label class="form-control-label" for="recommendation"gt;Recommendationslt;/labelgt;  lt;textarea name="recommendation" id="recommendation" class="form-control"gt;lt;/textareagt;  lt;/divgt;  lt;/divgt;  lt;input type="hidden" id="caseId" class="form-control"/gt;   lt;/divgt;  lt;/divgt; lt;div class="modal-footer"gt;  lt;button type="button" id="save_report_changes" class="btn btn-primary"gt;Save changeslt;/buttongt;  lt;/divgt; lt;?php } //End php While