php - 如何在 Jquery 表格中显示图像?

标签 php jquery mysql blob

<分区>

我有一个动态表,我想在其中连续显示一个图像,我也可以将它更改为另一个图像。我已经有了表格代码,并且可以编辑名称和价格等内容。

选择3.php:

<?php  
 $connect = mysqli_connect("localhost", "root", "", "crc");  
 $output = '';  
 $sql = "SELECT * FROM pulseiras ORDER BY ref ASC";  
 $result = mysqli_query($connect, $sql);  
 $output .= '  
  <div class="table-responsive">  
       <table class="table table-bordered">  
            <tr>  
                 <th width="10%">REF</th>  
                 <th width="40%">Nome</th>  
                 <th width="40%">Preco</th>
                 <th width="40%">Imagem</th>
                 <th width="10%">Delete</th>  
            </tr>';  
 if(mysqli_num_rows($result) > 0)  
 {  
  while($row = mysqli_fetch_array($result))  
  {  
       $output .= '  
            <tr>  
                 <td>'.$row["ref"].'</td>  
                 <td class="nome" data-ref1="'.$row["ref"].'" contenteditable>'.$row["nome"].'</td>  
                 <td class="preco" data-ref2="'.$row["ref"].'" contenteditable>'.$row["preco"].'</td>  
                 <td><form name="inserir" action="insrimg.php" enctype="multipart/form-data" method="post">

            <input type="file" name="imagem" id="imagem"></td>
            <td><button type="button" name="btn_add" id="btn_add" class="btn btn-xs btn-success">+</button></td>
            </form>
            </tr>  
       ';  
      }  
      $output .= '  
       <tr>  
            <td></td>  
            <td id="nome" contenteditable></td>  
            <td id="preco" contenteditable></td>  
            <td id="imagem" contenteditable></td>
            <td><button type="button" name="btn_add" id="btn_add" class="btn btn-xs btn-success">+</button></td>  
       </tr>  
  ';  
 }  
 else  
 {  
  $output .= '<tr>  
                      <td colspan="4">Data not Found</td>  
                 </tr>';  
 }  
 $output .= '</table>  
  </div>';  
 echo $output;  
 ?>  

目前我的BLOB 类型图像在表行中显示二进制代码。

Index3.php:

<script>  
 $(document).ready(function(){  
  function fetch_data()  
  {  
       $.ajax({  
            url:"select3.php",  
            method:"POST",  
            success:function(data){  
                 $('#live_data').html(data);  
            }  
       });  
  }  
  fetch_data();  
  $(document).on('click', '#btn_add', function(){  
       var nome = $('#nome').text();  
       var preco = $('#preco').text();  
       var imagem = $('#imagem').file();
       if(nome == '')  
       {  
            alert("Insira Nome");  
            return false;  
       }  
       if(preco == '')  
       {  
            alert("Insira Preço");  
            return false;  
       }  
       if(imagem == '')  
       {  
            alert("Insira Imagem");  
            return false;  
       }  
       $.ajax({  
            url:"insrp.php",  
            method:"POST",  
            data:{nome:nome, preco:preco, imagem:imagem},  
            dataType:"text",   
            success:function(data)  
            {  
                 alert(data);  
                 fetch_data();  
            }  
       })  
  });  
  function edit_data(ref, text, column_name)  
  {  
       $.ajax({  
            url:"edit3.php",  
            method:"POST",  
            data:{ref:ref, text:text, column_name:column_name},  
            dataType:"text", 
            success:function(data){  
                 alert(data);  
            }  
       });  
  }  
  $(document).on('blur', '.nome', function(){  
       var ref = $(this).data("ref1");  
       var nome = $(this).text();  
       edit_data(ref, nome, "nome");  
  });  
  $(document).on('blur', '.preco', function(){  
       var ref = $(this).data("ref2");  
       var preco = $(this).text();  
       edit_data(ref,preco, "preco");  
  });  
  $(document).on('blur', '.imagem', function(){  
       var ref = $(this).data("ref3");  
       var imagem = $(this).file();  
       edit_data(ref,imagem, "imagem");  
  });  
  $(document).on('click', '.btn_delete', function(){  
       var ref=$(this).data("ref4");  
       if(confirm("Tem a certeza que deseja eliminar este dado?"))  
       {  
            $.ajax({  
                 url:"delete3.php",  
                 method:"POST",  
                 data:{ref:ref},  
                 dataType:"text",  
                 success:function(data){  
                      alert(data);  
                      fetch_data();  
                 }  
            });  
       }  
  });  
 });  
 </script>  

insrp.php:

<?php
$imagem= basename($_FILES["imagem"]["name"]);
$connect = mysqli_connect("localhost", "root", "", "crc"); 
if(count($_FILES) > 0) { 
 $sql = "INSERT INTO pulseiras(nome, preco, imagem) VALUES('".$_POST["nome"]."', '".$_POST["preco"]."', '".$imagem."')";  
 if(mysqli_query($connect, $sql))  
 {  
  echo 'Data Inserted';  
 }  

$target_dir = "imagens/";
$target_file = $target_dir . basename($_FILES["imagem"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["imagem"]["tmp_name"]);
if($check !== false) {
    if($check !== false) {
        $uploadOk = 1;
}   else {
        echo "Este ficheiro não é uma imagem!";
        $uploadOk = 0;
    }
}
// Check if file already exists
if (file_exists($target_file)) {
echo "A imagem já existe.";
$uploadOk = 0;
}
// Allow certain file formats
echo "<br> TIPO: $imageFileType <br>";
echo "<br> TIPO: $imageFileType <br>";
    if($imageFileType != "jpg" && $imageFileType != "JPG" && $imageFileType != "png" && $imageFileType != "PNG" && $imageFileType != "bmp" && $imageFileType != "BMP" && $imageFileType != "jpeg" && $imageFileType != "JPEG"
&& $imageFileType != "gif" && $imageFileType != "GIF" ) {
echo "Só é permitido ficheiros do tipo: JPG, PNG, JPEG e GIF";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "O seu ficheiro nao foi enviado!";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["imagem"]["tmp_name"], $target_file)) {
    echo "O ficheiro ". basename( $_FILES["imagem"]["name"]). " foi enviado!";
} else {
    echo "Houve um erro ao enviar o ficheiro! " . $_FILES["imagem"]["tmp_name"];
}
}

}}
?>

最佳答案

当您从数据库中以 BLOB 形式获取图像数据时,您可以使用以下方法显示图像:

<td class="imagem" data-ref3="'.$row["ref"].'" contenteditable><img src="data:image/jpeg;base64,'.base64_encode( $row['imagem'] ).'"/></td>

关于php - 如何在 Jquery 表格中显示图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37912659/

相关文章:

php - 通过产品 ID 创建指向 Magento 产品的直接链接

php - 共享主机中的Codeigniter应用程序无法连接到vps中的远程mysql

php - 应该 _escaped_fragment_ 返回一个完整的页面内容 [Ajax SEO ]

Javascript 设置超时以引导警报

MySql状态顺序

php - 如何防止最后一个换行符?

javascript - jQuery 显示和隐藏 div

javascript - 清理一些可笑的 JavaScript 代码

mysql - 以一个月为单位按周分组日期

mysql - 在 MySQL 中使用停用词进行全文搜索