dividir cadena separado por una coma y validar si es igual

publicado por: Anonymous

este es el codigo que tengo

variable que traigo de la base de datos
$perfil[‘imagen’];<— en esta variable puedo traer varias opciones por ejemplo:

presentable,aseado
presentable,aseado,De traje
Presentable,aseado,uniforme

entonces si por ejemplo la variable trae presentable,aseado en el option quisiera hacer un if($perfil['imagen'] == 'presentable'){ //codigo}

algo parecido a esto si me pudieran dar un ejemplo

$perfil['imagen'];
                    <option if($perfil['imagen'] == 'presentable'){ echo "selected";} value="presentable">Presentable</option>
                    <option if($perfil['imagen'] == 'aseado'){ echo "selected";} value="aseado">Aseado</option>
                    <option if($perfil['imagen'] == 'traje'){ echo "selected";} value="traje">Traje</option>
                    <option if($perfil['imagen'] == 'condicion saludable'){ echo "selected";} value="condicion saludable">Condicion saludable</option>
                    <option if($perfil['imagen'] == 'sin tatuajes'){ } value="sin tatuajes">Sin tatuajes</option>
                    <option if($perfil['imagen'] == 'sin percing'){ } value="sin percing">Sin percing</option>
                    <option if($perfil['imagen'] == 'sin expansiones'){ } value="sin expansiones">Sin expansiones</option>

quisiera algo parecido a esto validar si es igual el valor de la varible $perfil[‘experiencia’] que viene de la base de datos conalguno de los valores del option

es un ejemplo que hice pero la variable $perfil[‘experiencia’](6 meses) solo traia un valor

$perfil['experiencia'] == "6 meses" 
                      <option <?php if($perfil['experiencia'] == "6 meses"){ echo "selected"; } ?> value="6 meses">6 meses</option>
                      <option <?php if($perfil['experiencia'] == "1 año"){ echo "selected"; } ?> value="1 año">1 año</option>
                      <option <?php if($perfil['experiencia'] == "2 años"){ echo "selected"; } ?> value="2 años">2 años</option>
                      <option <?php if($perfil['experiencia'] == "5 años"){ echo "selected"; } ?> value="5 años">3 años</option>

aqui esta la solucion que necesitaba para validar los opcion la pregunta correcta era buscar dentro de un array si la palabra x existia
value=”presentable”>Presentable

solución

Podrías usar la función explode, es decir, divide una cadena en varios cadenas.

Posible ejemplo:

//Tu variable $perfil['experiencia']
$data = 'presentable,aseado,uniforme';

//Divide una cadena.
$cadena = explode(",", $data);      

//Recorrer array
foreach ($cadena as $valor) {       
    if ($valor == 'presentable') {
        //Sigues con tu codigo
    } 
}

Tu segunda pregunta, no me quedo claro del todo que función quieres crear realmente. A ver si aun así te puedo orientar un poco con él foreach.

//Recorrer array y creamos inputs segun 'valor'.
foreach ($cadena as $valor) {       
    if ($valor == 'presentable') {
        echo "<option value=$valor selected>$valor</option>";               
    } elseif ($valor == 'aseado') {
        echo "<option value=$valor selected>$valor</option>";
    } else {
        //Default valores.
    }
}

Al final @CarlosEnriqueGilGil ha solucionado su segunda pregunta de la siguiente forma.

Añadir el atributo selected a tu option en caso si existe en nuestro arreglo ($cadena).

<?php

//Tu variable $perfil['imagen']
$data = 'presentable,aseado,uniforme';

//Dividir una cadena.
$cadena = explode(",", $data);      

#Añadir el atributo 'selected' en caso si existe en nuestro arreglo ($cadena) mediante la función
#in_Array(), es decir, comprueba si un valor existe en un array.
echo"<option "; if(in_array("presentable",$cadena)) echo 'selected';  echo " value='presentable'>Presentable</option>n";
echo"<option "; if(in_array("aseado",$cadena)) echo 'selected';  echo " value='aseado'>Aseado</option>n";
echo"<option "; if(in_array("de traje",$cadena)) echo 'selected';  echo " value='de_traje'>De traje</option>n";

Resultado:

<option selected value='presentable'>Presentable</option>
<option selected value='aseado'>Aseado</option>
<option  value='de_traje'>De traje</option>

DEMO

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *