Hola buenas , supongamos que yo obtengo un resultado cuando lanzo una variable como esta: $distrib->Estado;
Los estados son:
- reservada
- confirmada
- cargada
- eliminada
Bueno pues supongamos que yo quiero que cuando me devuelva "reservada" quiero que en vez de las letras me saliera un icono como por ejemplo.
<button type="button" class="btn btn-success"> <i class="entypo-check"></i> </button>
Entiendo que esto se deberia hacer con un condicional como por ejemplo:
if( $distrib->Estado === 'Confirmada' ) { echo '<i class="entypo-check"></i>'; } else { echo $distrib->Estado; }
Pero asi solo me lo hace una vez. También tengo que decir que donde quiero que actue es dentro de una tabla que lleva un foreach
:
if( $distrib->Estado === 'Confirmada' ) { echo '<button type="button" class="btn btn-success"> <i class="entypo-check"></i> </button>'; } else { echo $distrib->Estado; } echo '<table class="table table-bordered table-striped datatable" id="table-2">'; echo '<thead>'; echo '<tr class="success" >'; echo '<th>xxxx</th>'; echo '<th>xxx</th>'; echo '<th>xxx xxx</th>'; echo '<th>Nombre</th>'; echo '<th>Estado</th>'; echo '</tr>'; echo '</thead>'; if (is_array($xxxx)) { foreach($distribuciones as $xx) { echo ' <tbody> <tr> <td>'.$distrib->Contrato.'</td> <td>'.$distrib->xx.'</td> <td>'.$distrib->.'</td> <td>'.$distrib->.'</td> <td>'.$distrib->.'</td> <td>'.$distrib->.'</td> <td>'.$distrib->Estado.'</td> </tr>'; } }
Por el momento no funciona
Respuestas
Para no ensuciar mucho el código, lo mejor sería que definieras una función PHP que se encarge de mostrar los iconos. Para ello, cambia esta línea:
'<td>'.$distrib->Estado.'</td>'
por esta otra:
'<td>'.muestraEstado($distrib->Estado).'</td>'
Luego ya solo tienes que definir una función PHP en esa misma página y con el siguiente aspecto:
function muestraEstado($estado) { if($estado === 'Confirmada') { echo '<button type="button" class="btn btn-success"> <i class="entypo-check"></i> </button>'; } else { echo $estado; } }
@javiereguiluz
Te he hecho caso al pie de la letra, me acepta el código pero no me pinta los iconos dentro de la tabla.
echo '<table class="table table-bordered table-striped datatable" id="table-2">'; echo '<thead>'; echo '<tr class="success" >'; echo '<th>Contrato</th>'; echo '<th>Cliente</th>'; echo '<th>Matricula Tractora</th>'; echo '<th>DNI PASAPORTE</th>'; echo '<th>Matricula Remolque</th>'; echo '<th>Nombre</th>'; echo '<th>Estado</th>'; echo '</tr>'; echo '</thead>'; function muestraEstado($estado) { if($estado === 'Confirmada') { echo '<button type="button" class="btn btn-success"> <i class="entypo-check"></i> </button>'; } else { echo $estado; } } if (is_array($distribuciones)) { foreach($distribuciones as $distrib) { echo ' <tbody> <tr> <td>'.$distrib->Contrato.'</td> <td>'.$distrib->Cliente.'</td> <td>'.$distrib->Matricula_tractora.'</td> <td>'.$distrib->DNI_conductor.'</td> <td>'.$distrib->Matricula_remolque.'</td> <td>'.$distrib->Nombre_conductor.'</td> <td>'.muestraEstado($distrib->Estado).'</td> </tr>'; } } echo '</table>';
Te adjunto imagen para que veas como lo monta:
Si la dejo como antes la palabara "Confirmada", que es el resultado de :
'<td>'.$distrib->Estado.'</td>'
@javierecompring
Buenas @javierecompring, no se si ya pudiste solucionar tu problema, segun pude ver en tu codigo te falta realizar un echo '</tbody>'
ya que nunca se realiza el cierre del cuerpo de la tabla. Saludos
@Diloog363
no gracias por eso pero cerrando me lo pintaba igual fuera de la tabla
al final lo solucione asi:
echo '<table class="table table-bordered table-striped datatable" id="table-2">'; echo '<thead>'; echo '<tr class="success" >'; echo '<th>Contrato</th>'; echo '<th>Cliente</th>'; echo '<th>Matricula Tractora</th>'; echo '<th>DNI PASAPORTE</th>'; echo '<th>Matricula Remolque</th>'; echo '<th>Nombre</th>'; echo '<th>Estado</th>'; echo '</tr>'; echo '</thead>'; function muestraEstado($estado) { if($estado === 'Confirmada') { echo '<td><button type="button" class="btn btn-success"> <i class="entypo-check"></i> </button></td>'; } else { echo $estado; } } if (is_array($distribuciones)) { foreach($distribuciones as $distrib) { echo ' <tbody> <tr> <td>'.$distrib->Contrato.'</td> <td>'.$distrib->Cliente.'</td> <td>'.$distrib->Matricula_tractora.'</td> <td>'.$distrib->DNI_conductor.'</td> <td>'.$distrib->Matricula_remolque.'</td> <td>'.$distrib->Nombre_conductor.'</td>'; muestraEstado($estado); echo '</tr> </tbody>'; } } echo '</table>';
Muchas gracias de todas formas!!
@javierecompring