Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Funcion que inserte imagen en un <div>

Estas en el tema de Funcion que inserte imagen en un <div> en el foro de PHP en Foros del Web. Estoy trabajando con PHP, basicamente es un codigo que recolecta datos atraves de una API, y estoy listando esos datos con una estructura repetitiva a ...
  #1 (permalink)  
Antiguo 04/11/2017, 19:23
 
Fecha de Ingreso: agosto-2009
Mensajes: 26
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta Funcion que inserte imagen en un <div>

Estoy trabajando con PHP, basicamente es un codigo que recolecta datos atraves de una API, y estoy listando esos datos con una estructura repetitiva a una tabla.
Pero sucede que, en la cuarta columna deseo mostrar una imagen, pero quiero que esa imagen se muestre segun una condicion.
Entonces he recurrido a jQuery, creo un div que se llama "type" (en y hago que atraves de la funcion html() se instroduzca un <img> que muestre una imagen determinada.
Pero la imagen se muestra en cualquier lado o a veces no se muestra.

Quisiera saber si esta bien convocada la funcion o cual seria la manera adecuada de hacerlo.
Gracias

El codigo es:
Código PHP:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

<?php

echo "<center>";
echo 
"<table border='0'><tr>
<td><a href='indexDSC.php' target='_self' ><img src='sort.png' width='30' height='30' alt='Ordenar'/></a></td>
<td><a href='javascript:location.reload()' target='_self'><img src='refresh.png' width='30' height='30' alt='refresh'/></a></td>
<td><a href='javascript:window.print(); void 0;' target='_self'><img src='print.png' width='30' height='30' alt='Print'/></a></td>
<td><a href='javascript:window.print(); void 0;' target='_self'><img src='email.png' width='30' height='30' alt='Email'/></a></td>
</tr></table>"
;



echo 
"<table border='1' color='black'>";
echo
"<tr>
<th>id</th>
<th>Worker</th>
<th>Hashrate</th>
<th>Tipo</th>
</tr>"
;

$j=1;
$i=0;

foreach(
$obj['data'] as $item
{

if (
$item['hashrate'] > 100)
{
echo 
'<tr><td>'.$j.'</td><td>'.$item['worker'].'</td><td><div style="color: #088A29">'  .number_format($item['hashrate'] , 3). '</div></td><td>  <div id="type"></div>   </td></tr>';


if(
$item['worker']=='minR25PC04'

?> 
    <script> 
       $( function(){ 
        $('#type').html('<img src="refresh.png" width="30" height="30"/>');
                     });
      </script> 
<? 



}


 

else {
}

echo 
"</table>";
echo 
"</center>";
echo 
"<hr>";

?>

Como podemos ver en la imagen se lista en cualquier <div>, no responde a la condicion.

https://www.dropbox.com/s/lso2ozi5elt4wza/Captura.JPG?dl=0

Última edición por darkling_; 04/11/2017 a las 19:30
  #2 (permalink)  
Antiguo 04/11/2017, 20:36
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 9 meses
Puntos: 263
Respuesta: Funcion que inserte imagen en un <div>

por un lado te digo que estas utilizando una misma id para no se cuantos divs en un bucle, lo cual esta mal, pues la id debe ser UNICA en el DOM, por otro lado, si esta se va a generar de acuerdo a una condicion, porque no realizar dicha condicion directamente en php sin recurri a jquery???

Código PHP:
Ver original
  1. foreach($obj['data'] as $item)  
  2. {
  3.  
  4. if ($item['hashrate'] > 100)
  5. {
  6.  
  7. $imagen = ($item['worker']=='minR25PC04') ? '<img src="refresh.png" width="30" height="30"/>' : ''; //AQUI LA IMAGEN
  8.  
  9. echo '<tr><td>'.$j.'</td><td>'.$item['worker'].'</td><td><div style="color: #088A29">'  .number_format($item['hashrate'] , 3). '</div></td><td>  <div class="type">'.$imagen.'</div></td></tr>';
  10.  
  11. }else {
  12. }
  13.  
  14. echo "</table>";
  15. echo "</center>";
  16. echo "<hr>";
  17.  
  18. ?>
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 04/11/2017, 20:50
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Funcion que inserte imagen en un <div>

Me sumo a xfxstudios

Recomendación. no usar tag center, para eso esta css, además html5 no lo soporta.

Saludos
  #4 (permalink)  
Antiguo 05/11/2017, 09:54
 
Fecha de Ingreso: agosto-2009
Mensajes: 26
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta Respuesta: Funcion que inserte imagen en un <div>

Cita:
Iniciado por xfxstudios Ver Mensaje
por un lado te digo que estas utilizando una misma id para no se cuantos divs en un bucle, lo cual esta mal, pues la id debe ser UNICA en el DOM, por otro lado, si esta se va a generar de acuerdo a una condicion, porque no realizar dicha condicion directamente en php sin recurri a jquery???

Código PHP:
Ver original
  1. foreach($obj['data'] as $item)  
  2. {
  3.  
  4. if ($item['hashrate'] > 100)
  5. {
  6.  
  7. $imagen = ($item['worker']=='minR25PC04') ? '<img src="refresh.png" width="30" height="30"/>' : ''; //AQUI LA IMAGEN
  8.  
  9. echo '<tr><td>'.$j.'</td><td>'.$item['worker'].'</td><td><div style="color: #088A29">'  .number_format($item['hashrate'] , 3). '</div></td><td>  <div class="type">'.$imagen.'</div></td></tr>';
  10.  
  11. }else {
  12. }
  13.  
  14. echo "</table>";
  15. echo "</center>";
  16. echo "<hr>";
  17.  
  18. ?>
" porque no realizar dicha condicion directamente en php sin recurri a jquery???"
Porque jQuery me permite ejecutar una funcion html() que me permite introducir elementos dentro de un tag HTML.

Entonces, como haria yo para que si se cumple una condicion poder mostrar una imagen en la cuarta columna de la tabla que se genera con la estructura repetitiva?
  #5 (permalink)  
Antiguo 05/11/2017, 10:53
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Funcion que inserte imagen en un <div>

La respuesta a el conflicto jquery-php, es que si tu imágen es estática, es decir, no va a cambiar dentro de tu web. en ese caso no es necesario, estas haciendo dos procesos que se puede hacer en uno.

Ahora si va a cambiar en el tiempo, de todas maneras usa hibrido, para tener una imágen predefinida en tu web.

Para hacer lo que pides, y lo voy a ser con un código propio para hacerlo didáctico, haría lo sig.

Código PHP:
Ver original
  1. <table>
  2. <tr>
  3.     <td>Col1</td>
  4.     <td>Col2</td>
  5.     <td>Col3</td>
  6.     <td>Imgagen</td>
  7. </tr>
  8.  
  9. <?php
  10.  
  11. for($k=0;$k<sizeof($obj);$k++){
  12. /*
  13. In for you use instead foreach, this pattern
  14. $array[$k][index/key];
  15. */
  16.  
  17. $img = "default.png"; //some default image
  18. $col1 = $var1; //some var to col1
  19. $col2 = $var2; //some var to col2
  20. $col3 = $var3; //some var to col3
  21.  
  22.     if(/*some conditional here...*/){
  23.     $img = "conditional.png"; //the conditional image
  24.     }
  25.  
  26. echo "<tr><td>$col1</td><td>$col2</td><td>$col3</td><td><img src=\"$img\" /></td></tr>";
  27. }
  28. ?>
  29.  
  30. </table>

Es mi propuesta.

Saludos

P.S: No me gusta hacer uso de foreach, es demasiado la ayuda, como yo vengo de c++ poco lo uso
  #6 (permalink)  
Antiguo 05/11/2017, 19:49
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 9 meses
Puntos: 263
Respuesta: Funcion que inserte imagen en un <div>

Cita:
Iniciado por darkling_ Ver Mensaje
" porque no realizar dicha condicion directamente en php sin recurri a jquery???"
Porque jQuery me permite ejecutar una funcion html() que me permite introducir elementos dentro de un tag HTML.

Entonces, como haria yo para que si se cumple una condicion poder mostrar una imagen en la cuarta columna de la tabla que se genera con la estructura repetitiva?
La verdad es que no entiendo como hiciste esa pregunta, pero bueno, aqui una prueba de lo que te intente decir:

Código PHP:
Ver original
  1. $array = (object) array(
  2.     (object) array('nombre'=>'Carlos','apellido'=>'Quintero','cedula'=>'123456','genero'=>'Hombre'),
  3.     (object) array('nombre'=>'Manuel','apellido'=>'Quintero','cedula'=>'123456','genero'=>'Hombre'),
  4.     (object) array('nombre'=>'Maria','apellido'=>'Quiroga','cedula'=>'123456','genero'=>'Mujer'),
  5.     (object) array('nombre'=>'Laura','apellido'=>'Romero','cedula'=>'123456','genero'=>'Mujer'),
  6. );
  7.  
  8. echo "<table>";
  9.  
  10. foreach($array as $item){
  11.     $imagen = ($item->genero=='Mujer') ? '<img src="http://images.gofreedownload.net/female-user-icon-clip-art-6812.jpg" />' : '';
  12.     echo "<tr>";
  13.     echo "<td>".$item->nombre."</td>";
  14.     echo "<td>".$item->apellido."</td>";
  15.     echo "<td>".$item->cedula."</td>";
  16.     echo "<td>".$item->genero."</td>";
  17.     echo "<td>".$imagen."</td>";
  18.     echo "</tr>";
  19. }
  20.  
  21. echo "</table>";

MUESTRA


Dicha prueba esta hecha con un array que simula los datos de la DB y la condicion que m uestra una imagen dependiendo de si es mujer y si es hombre no la muestra, copia y pega esto en tu editor y ejecutalo, para que veas el resultado:
__________________
[email protected]
HITCEL
  #7 (permalink)  
Antiguo 06/11/2017, 12:25
 
Fecha de Ingreso: agosto-2009
Mensajes: 26
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Funcion que inserte imagen en un <div>

Hola chicos, muchisimas gracias xfx studios y alvaro son unos grosos. Me ha funcionado perfectamente!

Etiquetas: funcion, html, 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 00:05.