Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Cargar inputs desde BD

Estas en el tema de Cargar inputs desde BD en el foro de PHP en Foros del Web. Hola a todos, estoy haciendo una aplicación en entrono WEB. La aplicación son una serie de pantallas, en cada pantalla hay unos "inputs" sobre los ...
  #1 (permalink)  
Antiguo 26/07/2013, 20:47
Avatar de tito87  
Fecha de Ingreso: septiembre-2012
Ubicación: Tarragona
Mensajes: 25
Antigüedad: 11 años, 7 meses
Puntos: 0
Cargar inputs desde BD

Hola a todos,
estoy haciendo una aplicación en entrono WEB. La aplicación son una serie de pantallas, en cada pantalla hay unos "inputs" sobre los que interactuar, pueden ser botones, text o select.
Cada vez que se carga la página llamo a una función para que vaya a una base de datos y me coja los inputs de esa pantalla. Los inputs y sus características son pasados a la vista como un array. En la vista recorro este array y voy haciendo que se "dibujen" en pantalla.
El problema lo tengo con las opciones de los selectores que no soy capaz de que funcione. Soy capaz de crear el selector, pero vacío. No se como hacer para meterle opciones, ya que no sé el número ni el valor de cada una de ellas.
Os dejo el código de la vista que es lo importante.

Código PHP:
<script type="text/javascript">
$(document).ready(function()
{
    $('input').change(function()
    {
        var minvalue = parseFloat($(this).attr('minvalue')),
            maxvalue = parseFloat($(this).attr('maxvalue')),
            value = parseFloat($(this).val());
            
        if(value<maxvalue || value===maxvalue)
        {
            if(value===minvalue || value>minvalue)
            {
                $(this).addClass('correct');
                $(this).removeClass('incorrect');
            }
            else
            {
                $(this).addClass('incorrect');
                $(this).removeClass('correct');
            }

        }
        else
        {
            $(this).addClass('incorrect');
            $(this).removeClass('correct');
        }

    });

    $('#nextArrow').click(function(){
        $("#module input").each(function (index) 
        {
            var name=$(this).attr('name');
            var value=$(this).val();
            $.ajax({    url : base_url + 'main/set_datos_array',
                        data : { 'name' : name, 'value':value},
                        type : 'POST',
                        async : false,
                        dataType : 'json',
                        error : function() {
                                showError("Error while retrieving project info.");
                        }
            });
         });
        
    });
    $('button.okbutton').click(function(){
    $(this).toggleClass('pressed');
    if($(this).hasClass('pressed'))
        $(this).html('NOK');
    else
        $(this).html('OK');
    });
    
});

</script>


<h1>Unidad <?= $unit.' '.$this->session->userdata('status')?></h1>

<div id="module" style="z-index:1; background-image: url('<?=base_url().$route?>')">
    <div id="infopopup">
        <span>Valor 1</span>
        <span>Valor 2</span>
        <span>Valor 3</span>
    </div>
    <?php $i=0;
    foreach(
$inputs as $input)
    {
        if(
$input['type']==='text')
            echo 
'<input type="'.$input['type'].'" class="default '.$input['class'].'" value="'.$input['defaultvalue'].'" name="'.$input['name'].'" maxvalue="'.$input['maximvalue'].'" minvalue="'.$input['minimvalue'].'" style="margin-top:'.$input['margintop'].'px;margin-left:'.$input['marginleft'].'px; width:'.$input['width'].'px; height:'.$input['height'].'px; position:'.$input['position'].'">';
        else if(
$input['type']==='button')
            echo 
'<button name="'.$input['name'].'" class="default '.$input['class'].'" style="margin-top:'.$input['margintop'].'px;margin-left:'.$input['marginleft'].'px; width:'.$input['width'].'px; height:'.$input['height'].'px; position:'.$input['position'].'">'.$input['defaultvalue'].'</button>';
        else if (
$input['type']==='select')
        {
            
$selectid $input['name'];
            echo 
'<select name="'.$input['name'].'" id="'.$input['name'].'" class="default '.$input['class'].'" style="margin-top:'.$input['margintop'].'px;margin-left:'.$input['marginleft'].'px; width:'.$input['width'].'px; height:'.$input['height'].'px; position:'.$input['position'].'"></select>';
        }
    }
?>
</div>
La variable $inputs es el array con todos los inputs que corresponden a esa pantalla.

Muchas gracias y espero que me podais ayudar.
  #2 (permalink)  
Antiguo 27/07/2013, 04:13
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Cargar inputs desde BD

según veo en tu código, los selectores los creas vacíos porque no les has asignado opciones entre el fin de la apertura del select y el comienzo del cierre del select.

dicho en código

Código PHP:
Ver original
  1. <select name="nombre_del_select">
  2.    <option>$inputs[texto_de_select_que_vera_el_usuario]</option>
  3. </select>
  #3 (permalink)  
Antiguo 28/07/2013, 18:44
Avatar de tito87  
Fecha de Ingreso: septiembre-2012
Ubicación: Tarragona
Mensajes: 25
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Cargar inputs desde BD

Ya lo solucioné.
Lo que he hecho ha sido cargar de mi BD las opciones y "escribirlas" en la página, después una vez que se ha cargado la página con JQuery le digo que se vayan a su select correspondiente.
De este modo me da igual no saber cuantas opciones tiene cada select.

Gracias.

Etiquetas: bd, html, inputs, select, variable
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 01:47.