Hola. En un select, para mostrar los valores del mismo, hago una consulta a una bd.
He realizado una funcion para que, sobre estos datos de esta consulta, haga una serie de campos y me devuelva un array con los cambios realizados.
Despues, en el select, recorro el array llamando a la consulta mostrar los datos.
Hasta aqui todo perfecto, lo tengo conseguido y funciona perfectamente.
Lo que quiero es unificar la funcion para que me valga para otros select y me encuentro con el problema de que, a la hora de llamar a los campos de la consulta, como la consulta será diferente se llaman de distinta manera, por lo que tendria que hacer una funcion para cada selecto y esto no es operativo.
Aqui os dejo los codigos, a ver que me podeis contar.
Select
Código PHP:
Ver original<select id="cbo_forma_pago" name="cbo_forma_pago<?php echo $a; ?>" tabindex="9" class="formulario2">
<option selected='selected'><?php echo primera_mayuscula($forma1['forma']).' '.$forma1['pago'];?></option>
<?php
$valores_combo = valores_combo(c_formas_pago_empresas($id_empresa),primera_mayuscula($forma1['forma']).' '.$forma1['pago']);
for ($i=0;$i<sizeof($valores_combo);$i++) {
echo "<option>".$valores_combo[$i]."</option>";
}
?>
</select>
La funcion
Código PHP:
Ver originalfunction valores_combo($sql,$defecto)
{
//Guardo el resultado de la consulta en un array
{
{
$valores[$i] = primera_mayuscula($rs1['forma']).' '.$rs1['pago'];
$i++;
}
else
{
$i = 0;
$valores[$i] = primera_mayuscula($rs1['forma']).' '.$rs1['pago'];
$i++;
}
}
//Quito del array el valor por defecto
for ($i=0;$i<=count($valores);$i++) {
if ($valores[$i] == $defecto)
{
break;
}
}
//Quito el elemento que ha quedado vacio en el array.
return $valores;
}
?>
Como podeis ver, en el select, el parametro defecto sería la mismo que el valor del array en la funcion, a excepción de la forma de llamar a la consulta, que en el select es forma1 y en la funcion es rs.
Se podría cambiar el nombre en la funcion y poner a todos los rs, forma1, pero claro, me encontraré con otros select, que en de llamar forma 1, serán activ1, por ejemplo.
Bueno, espero que me entedais y gracias por vuestra ayuda. Un saludo.