Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Mostrar imagenes en php desde js

Estas en el tema de Mostrar imagenes en php desde js en el foro de Javascript en Foros del Web. Compañeros tengo la siguiente tabla, el cual funciona con ajax, js pero estoy teniendo problemas al mostrar imagenes, el campo imagen me muestra solo el ...
  #1 (permalink)  
Antiguo 07/05/2013, 11:19
 
Fecha de Ingreso: septiembre-2010
Mensajes: 64
Antigüedad: 13 años, 7 meses
Puntos: 5
Pregunta Mostrar imagenes en php desde js

Compañeros tengo la siguiente tabla, el cual funciona con ajax, js pero estoy teniendo problemas al mostrar imagenes, el campo imagen me muestra solo el nombre pero quiero q me muestre la imagen , y no puedo adaptarl oel codigo de img icr al archivo de js, supongo q se debe poner con algunos caracteres especiales q desconosco espero puedan ayudarme


Index.php
Código PHP:
<?php 
include("conexion.php")
?>
<!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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Filtro en tabla mysql con ajax php & mysql</title>
<link rel="stylesheet" type="text/css" href="assets/css/style.css"/>
<style type="text/css">
    /* CSS demo */
    #content{
        padding:20px 0 0 10px
    }
    #content .filtro{
        overflow:hidden;
        padding-bottom:15px
    }
    #content .filtro select{
        width:100px
    }
    #content .filtro ul{
        list-style:none;
        padding:0
    }
    #content .filtro li{
        float:left;
        display:block;
        margin:0 5px
    }
    #content .filtro li a{
        color:#006;
        position:relative;
        top:5px;
        text-decoration:underline
    }
    #content .filtro li label{
        float:left;
        padding:4px 5px 0 0
    }
    #content table{
        border-collapse:collapse;
        width:940px;
    }
    #content table th{
        border:1px solid #999;
        padding:8px;
        background:#F8F8F8
    }
    #content table th span{
        cursor:pointer;
        padding-right:12px
    }
    #content table th span.asc{
        background:url(assets/imgs/sorta.gif) no-repeat right center;
    }
    #content table th span.desc{
        background:url(assets/imgs/sortd.gif) no-repeat right center;
    }
    #content table td{
        border:1px solid #999;
        padding:6px
    }
    
</style>
<link rel="stylesheet" type="text/css" href="assets/jqueryui/css/smoothness/jquery-ui-1.8.16.custom.css"/>

<script type="text/javascript" src="assets/js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="assets/jqueryui/js/jquery-ui-1.8.16.custom.min.js"></script>
<script type="text/javascript" src="assets/js/js.js"></script>

</head>
<body>
    <div id="content">
        <div class="filtro">
            <form id="frm_filtro" method="post" action="">
                <ul>
                    <li><label>Nacimiento: &nbsp;&nbsp; del</label> 
                        <input type="text" name="del" id="del" size="15" class="datepicker" /> 
                        al 
                        <input type="text" name="al" id="al" size="15" class="datepicker" /></li>
                    <li><label>Nombre/Email:</label> <input type="text" name="nombre_email" size="25" /></li>
                    <li><label>Pais:</label>
                        <select name="pais">
                            <option value="0">--</option>
                            <!-- Listar Paises -->
                            <?php
                            $query 
mysql_query("SELECT * FROM categorias"); 
                            while(
$row mysql_fetch_array($query)){
                                
?>
                                <option value="<?php echo $row['id'?>">
                                    <?php echo $row['nombre'?>
                                </option>
                                <?php
                            
}
                            
?>
                        </select>                    
                    </li>
                    <li>
                        <button type="button" id="btnfiltrar">Filtrar</button>
                    </li>                
                    <li>
                        <a href="javascript:;" id="btncancel">Todos</a>
                    </li>
                </ul>
            </form>
        </div>
        <table cellpadding="0" cellspacing="0" id="data">
            <thead>
                <tr>
<th>ID</th>
<th>CODIGO</th>
<th>NOMBRE</th>
<th>MARCA</th>
<th>LINEA</th>
<th>PRECIO</th>
<th>IMAGEN</th>
                </tr>
            </thead>
            <tbody>
                
            </tbody>
        </table>
    </div>    
</body>
</html>
Ajax.php
Código PHP:
<?php 
include("conexion.php");

if(
$_GET['action'] == 'listar')
{
    
// valores recibidos por POST
    
$vnm   $_POST['nombre_email'];
    
$vpais $_POST['pais'];
    
$vdel  = ($_POST['del'] != '' ) ? explode("/",$_POST['del']) : '';
    
$val   = ($_POST['al']  != '' ) ? explode("/",$_POST['al']) : '';
    
    
$sql "SELECT * FROM items it, categorias cat WHERE it.id_categoria = cat.id";    
                                        
    
// Vericamos si hay algun filtro
    //$sql .= ($vnm != '')      ? " AND CONCAT(nombre,' ', email) LIKE '%$vnm%'" : "";
    //$sql .= ($vpais > 0)      ? " AND pe.pais = '".$vpais."'" : "";
    //$sql .= ($vdel && $val)   ? " AND nacimiento BETWEEN '$vdel[2]-$vdel[1]-$vdel[0]' 
                                                        //AND '$val[2]-$val[1]-$val[0]' " : "";
    
    // Ordenar por
    
$vorder $_POST['orderby'];
    
    if(
$vorder != ''){
        
$sql .= " ORDER BY ".$vorder;
    }
    
    
$query mysql_query($sql);
    
$datos = array();
    
    while(
$row mysql_fetch_array($query))
    {
        
$datos[] = array(
        
            
'id'              => $row[0],
            
'codigo'          => $row[1],
            
'nombre'          => $row['nombre'],
            
'marca'          => $row[3],
            
'linea'          => $row[4],
            
'precio'        => $row[5],
            
'imagen'        => $row[6]
        );
    }
    
// convertimos el array de datos a formato json
    
echo json_encode($datos);
}

?>
js.js
Código PHP:
// JavaScript Document
var ordenar '';
$(
document).ready(function(){
    
    
// Llamando a la funcion de busqueda al
    // cargar la pagina
    
filtrar()
    
    var 
dates = $( "#del, #al" ).datepicker({
            
yearRange"-50",
            
defaultDate"+1w",
            
changeMonthtrue,
            
changeYeartrue,
            
onSelect: function( selectedDate ) {
                var 
option this.id == "del" "minDate" "maxDate",
                    
instance = $( this ).data"datepicker" ),
                    
date = $.datepicker.parseDate(
                        
instance.settings.dateFormat ||
                        $.
datepicker._defaults.dateFormat,
                        
selectedDateinstance.settings );
                
dates.notthis ).datepicker"option"optiondate );
            }
    });
    
    
// filtrar al darle click al boton
    
$("#btnfiltrar").click(function(){ filtrar() });
    
    
// boton cancelar
    
$("#btncancel").click(function(){ 
        $(
".filtro input").val('')
        $(
".filtro select").find("option[value='0']").attr("selected",true)
        
filtrar() 
    });
    
    
// ordenar por
    
$("#data th span").click(function(){
        var 
orden '';
        if($(
this).hasClass("desc"))
        {
            $(
"#data th span").removeClass("desc").removeClass("asc")
            $(
this).addClass("asc");
            
ordenar "&orderby="+$(this).attr("title")+" asc"        
        
}else
        {
            $(
"#data th span").removeClass("desc").removeClass("asc")
            $(
this).addClass("desc");
            
ordenar "&orderby="+$(this).attr("title")+" desc"
        
}
        
filtrar()
    });
});

function 
filtrar()
{    
    $.
ajax({
        
data: $("#frm_filtro").serialize()+ordenar,
        
type"POST",
        
dataType"json",
        
url"ajax.php?action=listar",
            
success: function(data){
                var 
html '';
                var 
ruta 'imagen/';
                if(
data.length 0){
                    $.
each(data, function(i,item){
                                    
                        
html += '<tr>'
                            
html += '<td>'+item.id+'</td>'
                                
html += '<td>'+item.marca+'</td>'
                                
html += '<td>'+item.codigo+'</td>'
                                
html += '<td>'+item.precio+'</td>'
                                
                        
html += '<td>'+item.nombre+'</td>'
                        
                            
html += '<td>'+item.linea+'</td>'
                        
html += '<td>'+item.imagen+'</td>'
                            
                        
                            
                        
html += '</tr>';
                                                            
                    });                    
                }
                if(
html == ''html '<tr><td colspan="6" align="center">No se encontraron registros..</td></tr>'
                
$("#data tbody").html(html);
            }
      });

Este codigo uso en un archivo normal de php para que me muestre la imagen y me funciona
Código PHP:
 $id $_GET['imagen'];
   
$ruta "imagen/" $row['imagen'];
<
td><span class='texto'><img src='$ruta' width='100' height='100'/></span></td
Pero al querer adaptarlo ese codigo a mi archivo ajax.php o al js,js no me funciona, ya que el archivo js.js se encarga de mostrarme los datos y supongo q ahi debo poner el codigo para mostrar imagen pero por mas q lo intento no me sale.
  #2 (permalink)  
Antiguo 07/05/2013, 11:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Mostrar imagenes en php desde js

Pües tienes que hacer exactamente lo mismo, solo que en Javascript, ya estas imprimiendo el <td> solo es que agregues el <img> correspondiente.

Saludos.
  #3 (permalink)  
Antiguo 07/05/2013, 11:31
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Mostrar imagenes en php desde js

No puedes "mostrar una imagen en php", desde js. Por lo que veo, con datos obtenidos vía php, con js los pasas a un html, sin embargo, no creas la etiqueta para la imagen, directamente escribes el nombre.

html += '<td>'+item.imagen+'</td>'

html += '<td> <img src="'+item.imagen+'"/></td>'
  #4 (permalink)  
Antiguo 07/05/2013, 11:31
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Mostrar imagenes en php desde js

lo único que necesitas es concatenar la etiqueta <IMG> justo donde imagen es creado en ajax
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 07/05/2013, 11:47
 
Fecha de Ingreso: septiembre-2010
Mensajes: 64
Antigüedad: 13 años, 7 meses
Puntos: 5
Respuesta: Mostrar imagenes en php desde js

Gracias compañeros por la pronta respuesta puse el codigo que agrego el compañero ocp001a
html += '<td> <img src="'+item.imagen+'"/></td>'
AHora me falta poner la ruta dela imagen ya q me sale asi:
http://localhost/buscadorajax/3visualNju8ET.jpg
Pero deberia mostrarme asi:
http://localhost/buscadorajax/imagen/3visualNju8ET.jpg

Como logro adaptar el codigo de la ruta
Código:
$id = $_GET['imagen']; 
   $ruta = "imagen/" . $row['imagen']; 
<img src='$ruta' width='100'</td>
al array??? o debo ponerlo donde el archivo js.js??
Código:
'imagen'        => $row[6]
Espero me puedan ayudar mis conocimientos son muy pobres y lo poco q tengo aprendido y lo q aprendo es agracia a este foro
  #6 (permalink)  
Antiguo 07/05/2013, 12:35
 
Fecha de Ingreso: septiembre-2010
Mensajes: 64
Antigüedad: 13 años, 7 meses
Puntos: 5
Respuesta: Mostrar imagenes en php desde js

Muchas gracias amigos si no hubiera sido por sus consejos y la ayuda prestada no hubiera podido solucionar este problema, pero gracias ocp001a me ayudaste muchisimo:
Código:
html += '<td> <img src="imagen/'+item.imagen+'" width="100" height="100"/></td>'
Aqui mi resultado

Etiquetas: html, imagenes, js, mysql, php, registro, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:59.