Получить идентификатор кнопки в запросе SQL с помощью AJAX - PullRequest
0 голосов
/ 09 октября 2018

У меня есть таблица с моими проектами.Последняя ячейка содержит кнопку «ПОКАЗАТЬ ИЗОБРАЖЕНИЕ», которая должна загрузить URL-адрес изображения на основе данных из БД (идентификатор_проекта = имя изображения. Например, «4189.jpg»).

Как изменить код для получения динамического идентификатора, когда янажмите на конкретную кнопку ПОКАЗАТЬ ИЗОБРАЖЕНИЕ?На самом деле мне просто нужно получить значение идентификатора нажатой кнопки и установить это значение как $image_id переменная.

СТРУКТУРА HTML

<table class="table table-hover all-projects text-center">
  <thead>
    <tr>
      <th scope="col">project's date</th>
      <th scope="col">quantity</th>
      <th scope="col">order no</th>
      <th scope="col">image</th>
    </tr>
  </thead>
  <tbody>
  <tr>
    <td>27.09.2018</td>
    <td>120</td>
    <td>15092018</td>
    <td><span id="1634" class="d-none display btn btn-info">SHOW IMAGE</span></td>
  </tr>
  <tr>
    <td>15.06.2018</td>
    <td>200</td>
    <td>2062018</td>
    <td><span id="4189" class="d-none display btn btn-info">SHOW IMAGE</span></td>
  </tr>
  </tbody>
</table>

ЗАПРОС AJAX:

<script type="text/javascript">

$(document).ready(function() {

   $(".display").click(function() {                

     $.ajax({    //AJAX REQUEST FOR show-image.php
       type: "GET",
       url: "modules/show-image.php",             
       dataType: "html",        
       success: function(response){                    
           $("#responsecontainer").html(response);
       }

   });
});
});
</script>

show-image.php

<?php 
session_start();
$get_user = $_SESSION['user'];

include("../db-conn.php");
mysqli_select_db($con,"projects");
$image_id = "4189"; //GET ID FROM BUTTON'S ID, NOW IT'S STATIC
$result=mysqli_query($con, "select * from projects where user = '$get_user' and project_id = '$image_id'");


  while($row = mysqli_fetch_array($result))  
  { 

  echo '<img class="img-fluid" src="../../img/projects/'. md5("$get_user") . "/" .  $row["project_id"] .'.jpg" alt="" />';

  }
echo "</table>";

?>

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

попробуйте, вы можете использовать onclick на show image

на html,

 <table class="table table-hover all-projects text-center">
  <thead>
    <tr>
      <th scope="col">project's date</th>
      <th scope="col">quantity</th>
      <th scope="col">order no</th>
      <th scope="col">image</th>
    </tr>
  </thead>
  <tbody>
  <tr>
    <td>27.09.2018</td>
    <td>120</td>
    <td>15092018</td>
    <td><a href="javascript:void(0)" onclick="showImage(1634)" id="1634" class="d-none display btn btn-info">SHOW IMAGE</a></td>
  </tr>
  <tr>
    <td>15.06.2018</td>
    <td>200</td>
    <td>2062018</td>
    <td><a href="javascript:void(0)" onclick="showImage(4189)" id="4189" class="d-none display btn btn-info">SHOW IMAGE</a></td>
  </tr>
  </tbody>
</table>

на js,

<script type="text/javascript">

function showImage(id){
     $.ajax({    //AJAX REQUEST FOR show-image.php
       type: "GET",
       url: "modules/show-image.php?image_id="+id,             
       dataType: "html",      
       success: function(response){                    
           $("#responsecontainer").html(response);
       },
       error: function(jqXHR, textStatus, errorThrown){
          console.log(jqXHR);
       }
   });
}
</script>

на php,

<?php 
session_start();
$get_user = $_SESSION['user'];

include("../db-conn.php");
mysqli_select_db($con,"projects");
$image_id = $_GET['image_id']; //GET ID FROM BUTTON'S ID, NOW IT'S STATIC
$result=mysqli_query($con, "select * from projects where project_id = '$image_id'");


  while($row = mysqli_fetch_array($result))  
  { 

  echo '<img class="img-fluid" src="../../img/projects/'. md5("$get_user") . "/" .  $row["project_id"] .'.jpg" alt="" />';

  }

?>

может это поможет вам

0 голосов
/ 09 октября 2018

Измените ваш запрос AJAX, чтобы он также отправлял значение атрибута id ...

<script type="text/javascript">
  $(document).ready(function() {
    $('.display').click(function() {
      $.ajax({
        type: 'GET',
        url: 'modules/show-image.php',
        data: {
          imageId: $(this).attr('id'),
        }
        dataType: 'html',
        success: function(response) {
          $('#responsecontainer').html(response);
        }
      });
    });
  });
</script>

... и включал и экранировал его в своем PHP-скрипте:

$image_id = mysqli_real_escape_string($_GET['imageId']);

Также проверьте, установлено ли оно, иначе это может вызвать некоторые ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...