html – Problema: responsive – el titulo del input y el formulario en un mismo elemento para el responsive

Hola estoy diseñando un formulario en html con bootstrap, en la imagen podemos ver que el formulario lo dividí en 3 columnas para los campos a ingresar. Pero en el momento que sale las divisiones el titulo se queda en una columna y el campo del imput se va a la otra debido al responsive. Me gustaría saber como hacer que el titulo y la columna queden como un solo elemento para que el responsive los envíe a las misma columna.
introducir la descripción de la imagen aquí

Este es un div para cada campo del formulario

<div class="form-group">
                    <p class="textos" align="left"><b>Ingrese el nombre de su ciudad *</b></p>
                    <input type="text" class="form-control" name="ciudad" #ciudad="ngModel" ((ngModel))="usuarioService.selectedUsuario.ciudad" placeholder="Ej: Quito" required pattern="(A-Za-z){1,15}">
                    <div class="invalid-feedback"></div>
                    <div *ngIf="ciudad.touched && !ciudad.valid" class="css-input">
                        <div *ngIf="ciudad.errors.required">Campo es requerido</div>

                    </div>
                </div>

Este es el css que uso para crear los columnas:

    float: left
}

#right {
    float: right
}

main {
    column-count: 3;
    color: #1ab188;
    background: rgba(#13232f, .9);
}

.asd {
    background: #13232f;
    text-decoration: none;
    color: #1ab188;
    transition: .5s ease;
}

.form {
    background: rgba(#13232f, .9);
    padding: 40px;
    max-width: 600px;
    margin: 40px auto;
    border-radius: 4px;
    box-shadow: 0 4px 10px 4px rgba(#13232f, .3);
}

h2 {
    text-align: center;
    color: #ffffff;
    font-weight: 300;
    margin: 0 0 40px;
} ```

css – Como aumentar o tamanho de um elemento sem aumentar o body?

Eu tenho uma imagem com 100vw.

imagem com 100vw

O problema é que quero deixar ela maior proporcionalmente. mas ao aumentar para 140vw eu consigo arrastar para o lado direito, fica desconfigurado.

imagem com 140vw

Como eu posso aumentar a imagem proporcionalmente sem que ele fique com mais espaço para a direita?

saber cual elemento llamo a la funcion

¿de que forma puedo detectar cual elemento llamo a la funcion con js puro?

<p onclick="fun()">click</p>

function fun(e){
//detectar aqui
}

¿no se como hacerlo con js puro?

javascript – Como estender um baseNode.parentNode para um elemento pai “mais distante”?

Há algum tempo, perguntei aqui como evitar que uma função que copia a seleção de um texto “atinja” uma determinada div. Ainda não conseguei solucionar esse problema, mas obtive êxito em alguns testes quando descobri que posso limitar essa seleção usando o window.getSelection().baseNode.parentNode.id.

Fato é que consigo limitar essa seleção a uma div com determinado id ou tag, mas tenho dúvida se é possível estender o parentNode a um elemento pai “mais distante”, como em vez de if (window.getSelection().baseNode.parentNode.id != 'body-post4') return; (que limita a seleção ao body-post4), só copiar o que for selecionado dentro de um body-post1 (que é um “pai distante” do body-post4), por exemplo.

Pergunto isso porque eu não posso limitar essa cópia exclusivamente a um elemento específico porque alguns textos estão dentro de tags p, span, div, b, mas todos eles têm raiz em um mesmo id, o #body-post1, no caso.

/* Código que acrescenta uma informação a qualquer item copiado dentro da página */
function addLink() {
  
  
if (window.getSelection().baseNode.parentNode.id != 'body-post4') return; 
  
  var selection = window.getSelection();
    pagelink = "<br/></br/>Texto completo: " + document.title + "<br/>" + document.location.href;
    copytext = ("“"+selection+"”") + pagelink;
    newdiv = document.createElement('div');
    newdiv.style.position = 'absolute';
    newdiv.style.left = '-99999px';
    document.body.appendChild(newdiv);
    newdiv.innerHTML = copytext;
    selection.selectAllChildren(newdiv);
    window.setTimeout(function (){document.body.removeChild(newdiv);}, 100);
}
    
    document.addEventListener('copy', addLink); 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>

<p id="body-post1"><span id="body-post4">Quando este texto é copiado, as informações são adicionadas à área de transferência...</span></p>

<p id="body-post1"><span id="body-post3">... mas quando é este, ele vai para a área de transferência sem as informações adicionais</span></p>

<textarea placeholder="Colar o que foi copiado para teste..." cols="40" rows="7"></textarea>

android – RecyclerView no cambia fondo del elemento pulsado

tengo una actvity que implementa un RecycleView. Al principio tenía las clases RecyclerViewAdapters y RecyclerViewHolders en otros archivos a parte, pero mi problema es que tengo un obejto (miPlan) de una clase personalizada (Plan) en la activty que tiene unos variables que se deben de poner a al valor 1 con fondo de color amarillo y letra blanca cuando se pulsen las veces impares, y a valor 0 fondo de color blanco y letra amarilla cuando se pulsen las pares (es decir, marcar desmarcar).

Decidí meter la clase del apater y del holder en el archivo java de la activity para que el holder a la vez que cambiaba lo colores de fondo y letra cambiase el valor de la variable del objeto pero no me funciona.

No sé si hay algún método que se pueda implementar en la clase holder para que si dejo las clases del holder y del adapter fuera de la clase de la activty el holder se pueda comunicar con la activty para que sea esta la que cambie la variable de la clase personalizada o que sentencia tengo mal en la clase de la activity en la que están el adapter y el holder incluidos.

Aquí dejo el código de la clase de la activity que tiene las clases del holder y del adapter por si véis el fallo (que es que no cambia los colores del puslado, sino sólo del último elemento)

public class NueMatInvernales extends Activity {

private GridLayoutManager lLayout;
private Plan miPlan;


public TextView countryName;
public ImageView countryPhoto;
public RelativeLayout fondo;
public int pulsado=0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_nuevo_ava_mat);

    miPlan = new Plan();
    miPlan = (Plan)getIntent().getSerializableExtra("miPlan");

    setTitle(null);

    ImageButton siguiente = (ImageButton) findViewById(R.id.siguiente);

    siguiente.setBackgroundColor(Color.TRANSPARENT);
    siguiente.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent passIntent = new Intent();

            passIntent.setClass(NueMatInvernales.this, NuevoAvaInf.class);
            startActivity(passIntent);
        }
    });


    List<ItemObject> rowListItem = getAllItemList();
    lLayout = new GridLayoutManager(NueMatInvernales.this, 5);

    RecyclerView rView = (RecyclerView)findViewById(R.id.recycler_view);
    rView.setHasFixedSize(true);
    rView.setLayoutManager(lLayout);

    RecyclerViewAdapter rcAdapter = new RecyclerViewAdapter(NueMatInvernales.this, rowListItem);
    rView.setAdapter(rcAdapter);
}

private List<ItemObject> getAllItemList(){
    allItems.add(new ItemObject("Pala", R.drawable.icon));
    allItems.add(new ItemObject("Martillo", R.drawable.icon));
    allItems.add(new ItemObject("Casco", R.drawable.icon));
    allItems.add(new ItemObject("Paleta", R.drawable.icon));
    allItems.add(new ItemObject("Espuerta", R.drawable.icon));  
 
    return allItems;


}

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewHolders> {
    private List<ItemObject> itemList;
    private Context context;

    public RecyclerViewAdapter(Context context, List<ItemObject> itemList) {
        this.itemList = itemList;
        this.context = context;
    }

    @Override
    public RecyclerViewHolders onCreateViewHolder(ViewGroup parent, int viewType) {

        View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_view_list, null);
        RecyclerViewHolders rcv = new RecyclerViewHolders(layoutView);
        return rcv;
    }

    @Override
    public void onBindViewHolder(RecyclerViewHolders holder, int position) {
        countryName.setText(itemList.get(position).getName());
        countryPhoto.setImageResource(itemList.get(position).getPhoto());
    }

    @Override
    public int getItemCount() {
        return this.itemList.size();
    }

}

public class RecyclerViewHolders extends RecyclerView.ViewHolder implements View.OnClickListener {

    public RecyclerViewHolders(View itemView) {
        super(itemView);
        itemView.setOnClickListener(this);
        countryName = (TextView) itemView.findViewById(R.id.country_name);
        countryPhoto = (ImageView) itemView.findViewById(R.id.country_photo);
        fondo = (RelativeLayout) itemView.findViewById(R.id.fondo_item);
    }

    @Override
    public void onClick(View view) {
        Toast.makeText(view.getContext(), "Clicked Country Position = " + getAdapterPosition(), Toast.LENGTH_SHORT).show();
        if (pulsado == 0) {
            pulsado = 1;
            fondo.setBackgroundColor(Color.parseColor("#ffbe00"));
            countryName.setTextColor(Color.parseColor("#ffffff"));
            if (getAdapterPosition()==0) {
                miPlan.setHodratacion(1);
                Toast.makeText(view.getContext(), "Hidratación = " + miPlan.getHidratacion(), Toast.LENGTH_SHORT).show();
            }

        } else {
            pulsado = 0;
            fondo.setBackgroundColor(Color.parseColor("#ffffff"));
            countryName.setTextColor(Color.parseColor("#ffbe00"));

            if (getAdapterPosition()==0)
                miPlan.setHodratacion(0);
        }

    }
 }
}

y aquí os dejo la clase del holder y de la activty por separado por si hubiese algún metodo para comunicar el holder con la activty

Clase de la activity

public class NueMatInvernales extends Activity {

private GridLayoutManager lLayout;
private Plan miPlan;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_nuevo_ava_mat);

    miPlan = new Plan();
    miPlan = (Plan)getIntent().getSerializableExtra("miPlan");

    setTitle(null);

    ImageButton siguiente = (ImageButton) findViewById(R.id.siguiente);

    siguiente.setBackgroundColor(Color.TRANSPARENT);
    siguiente.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent passIntent = new Intent();

            passIntent.setClass(NueMatInvernales.this, NuevoAvaInf.class);
            startActivity(passIntent);
        }
    });


    List<ItemObject> rowListItem = getAllItemList();
    lLayout = new GridLayoutManager(NueMatInvernales.this, 5);

    RecyclerView rView = (RecyclerView)findViewById(R.id.recycler_view);
    rView.setHasFixedSize(true);
    rView.setLayoutManager(lLayout);

    RecyclerViewAdapter rcAdapter = new RecyclerViewAdapter(NueMatInvernales.this, rowListItem);
    rView.setAdapter(rcAdapter);
}

private List<ItemObject> getAllItemList(){
    allItems.add(new ItemObject("Pala", R.drawable.icon));
    allItems.add(new ItemObject("Martillo", R.drawable.icon));
    allItems.add(new ItemObject("Casco", R.drawable.icon));
    allItems.add(new ItemObject("Paleta", R.drawable.icon));
    allItems.add(new ItemObject("Espuerta", R.drawable.icon));  
 
    return allItems;
}
}

Clase del Holder

public class RecyclerViewHolders extends RecyclerView.ViewHolder implements View.OnClickListener {

public TextView countryName;
public ImageView countryPhoto;
public RelativeLayout fondo;
public int pulsado=0;

public RecyclerViewHolders(View itemView) {
    super(itemView);
    itemView.setOnClickListener(this);
    countryName = (TextView)itemView.findViewById(R.id.country_name);
    countryPhoto = (ImageView)itemView.findViewById(R.id.country_photo);
    fondo = (RelativeLayout) itemView.findViewById(R.id.fondo_item);
}

@Override
public void onClick(View view) {
    Toast.makeText(view.getContext(), "Clicked Country Position = " + getAdapterPosition(), Toast.LENGTH_SHORT).show();
    if (pulsado==0) {
        pulsado=1;
        fondo.setBackgroundColor(Color.parseColor("#ffbe00"));
        countryName.setTextColor(Color.parseColor("#ffffff"));
    }
    else
    {
        pulsado=0;
        fondo.setBackgroundColor(Color.parseColor("#ffffff"));
        countryName.setTextColor(Color.parseColor("#ffbe00"));
    }

}

}

css – Alguém sabe me dizer como faço aquele efeito de rolagem de página que o elemento segue a tela até o ponto que eu escolher?

https://we.tl/t-0D3HrXF9D7

Tentei de todas as formas fazer isso no Elementor do WordPress mas não consegui, como mostra o vídeo.

Ou ele para no meio da página e não sei como alterar, aí fica um espaço em brando até o final.

Ou ele desce sobrepondo tudo e tampando os elementos abaixo.

Alguém sabe como faço esse efeito scroll, onde o elemento rola junto com a página até onde eu determinar de outra forma?

Brigada!

python – Como exibir um único elemento da lista com lambda e filter

Nesse código que escrevi:

lstNomes = ("casa", "google", "escola")

lstFiltro = list(filter(lambda x: x <= "5", lstNomes))

Está retornando o array vazio:

()

Queria saber como consigo o elemento dentro da lstNomes com comprimento menor ou igual a 5.

c – Error: El elemento inicializador no es calculable al momento de la carga en la funcion ‘main’

Hola a todos actualmente estoy aprendiendo Lenguaje c y llegue a la parte de los apuntadores, pero resulta que me genera los siguientes errores en el momento de compilación:

main.c:22:1: aviso: la definición de datos no tiene tipo o clase de almacenamiento
   22 | p_tasa = &tasa;
      | ^~~~~~
main.c:22:1: aviso: el tipo de dato por defecto es ‘int’ en la declaración de ‘p_tasa’ (-Wimplicit-int)
main.c:22:1: error: tipos en conflicto para ‘p_tasa’
main.c:13:6: nota: la declaración previa de ‘p_tasa’ estaba aquí
   13 | int *p_tasa;
      |      ^~~~~~
main.c:22:10: aviso: la inicialización de ‘int’ desde ‘int *’ crea un entero desde un puntero sin una conversión (-Wint-conversion)
   22 | p_tasa = &tasa;

      |          ^
main.c:22:10: error: el elemento inicializador no es calculable al momento de la carga
main.c: En la función ‘main’:
main.c:28:18: error: argumento de tipo no válido del unario ‘*’ (se tiene ‘int’)
   28 |     printf("%d", *p_tasa);
      |                  ^~~~~~~
make: *** (<integrado>: main) Error 1

Mi código es el siguiente:

#include <stdio.h>


int tasa = 100;

// declaracion de un apuntador y una variable normal.
int *p_tasa;

/**
 * inicializacion de un apuntador, utilizando el operador de direccion (&)
 * cuando es puesto antes del nombre de una variable, regresa la direccion
 * de la misma en la memoria y la almacena en el apuntador.
 */

// almacena la direccion en memoria de tasa en p_tasa.
p_tasa = &tasa;

int main() {


    // imprime el contenido dentro de la variable al a que apunta p_tasa.
    printf("%d", *p_tasa);

    return 0;
}

Agradecere mucho su ayuda debido a que soy un novato en C, y realmente no entiendo que
error puedo estar cometiendo.

java – Obtener id del elemento del spinner en Android studio

estoy tratando de hacer un registro de usuarios el cual debe ingresar una ciudad mediante un spinner. Las id de las ciudades están en mi BD mysql y estoy tratando de capturarlas mediante el método “obtenerId” al cual le otorgo una URL con el nombre de la ciudad de la cual quiero su id (El nombre de la ciudad lo consigo en el método onItemSelected del spinner), esto va a un web service que las devuelve. Mi problema es que una vez que esto ocurre, no sé como capturar el valor para enviarlo al web service del registro de mi usuario. Mi duda es: ¿Cómo le puedo pasar el valor de la id al método onClick para que este vaya al Map?

Acá está mi código:


    public static final String JSON_ARRAY = "result";
    private JSONArray result;
    Spinner spCiudad;
    private ArrayList<String> arrayLocalidad;
    private ArrayList<String> arrayId;

    EditText nom, ape, dir, tel, cor, con, rCon;
    String nombre, apellido, fk_ciudad, direccion, telefono, correo, contrasena, repContrasena;

    Button btnRegistrar, btnCancelar;

    private static String URL_REGIST = "http://192.168.0.2/finjobb/registro_usuarios.php";
    private static String URL_CIUDAD = "http://192.168.0.2/finjobb/obtener_ciudades.php";
    private static String URL_ID_CIUDAD = "http://192.168.0.2/finjobb/obtener_id_ciudades.php";

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_registro);

        nom = findViewById(R.id.etNombre);
        ape = findViewById(R.id.etApellido);
        spCiudad = findViewById(R.id.spCiudad);
        dir = findViewById(R.id.etDireccion);
        tel = findViewById(R.id.etTelefono);
        cor = findViewById(R.id.etCorreo);
        con = findViewById(R.id.edtContrasena);
        rCon = findViewById(R.id.edtContrasenia2);
        btnRegistrar = findViewById(R.id.btnAgregarUsuario);
        btnCancelar = findViewById(R.id.btnCancelar);

        arrayId = new ArrayList<>();
        arrayLocalidad = new ArrayList<>();

        obtenerLocalidad();
        spCiudad.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                String localidad = spCiudad.getSelectedItem().toString();
                obtenerId(localidad);
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });

        btnRegistrar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                nombre = nom.getText().toString().trim();
                apellido = ape.getText().toString().trim();
                fk_ciudad = ????
                direccion = dir.getText().toString().trim();
                telefono = tel.getText().toString().trim();
                correo = cor.getText().toString().trim();
                contrasena = con.getText().toString().trim();
                repContrasena = rCon.getText().toString().trim();

                if (validarRegistro()){
                    if (validarTelefono()) {
                        if (contrasena.equals(repContrasena)) {
                            Registro();
                        } else {
                            Toast.makeText(RegistroActivity.this, "Las contraseñas no coinciden", Toast.LENGTH_SHORT).show();
                            onStop();
                        }
                    } else {
                        Toast.makeText(RegistroActivity.this, "El número de teléfono debe contener 9 dígitos", Toast.LENGTH_SHORT).show();
                        onStop();
                    }
                }else {
                    Toast.makeText(RegistroActivity.this, "No pueden haber campos vacíos", Toast.LENGTH_SHORT).show();
                    onStop();
                }
            }
        });
    }

    private void obtenerLocalidad() {
        StringRequest stringRequest = new StringRequest(Request.Method.GET, URL_CIUDAD,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        JSONObject j;
                        try {
                            j = new JSONObject(response);
                            result = j.getJSONArray(JSON_ARRAY);
                            listarLocalidades(result);
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                    }
                });
        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);
    }

    private void listarLocalidades(JSONArray jsonArray) {
        for (int i = 0; i < jsonArray.length(); i++) {
            try {
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                String nombreLocalidad = jsonObject.getString("NOMBRE_LOCALIDAD");
                arrayLocalidad.add(nombreLocalidad);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
        spCiudad.setAdapter(new ArrayAdapter<>(RegistroActivity.this, android.R.layout.simple_spinner_dropdown_item, arrayLocalidad));
        Collections.sort(arrayLocalidad);
    }

    private void obtenerId(String localidad) {
        StringRequest stringRequest = new StringRequest(Request.Method.GET, URL_ID_CIUDAD + localidad,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        JSONObject j;
                        try {
                            j = new JSONObject(response);
                            result = j.getJSONArray(JSON_ARRAY);
                            listarId(result);
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                    }
                });
        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);
    }

    private void listarId(JSONArray jsonArray) {
        for (int i = 0; i < jsonArray.length(); i++) {
            try {
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                String idCiudad = jsonObject.getString("ID_LOCALIDAD");
                arrayId.add(idCiudad);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }

    public boolean validarTelefono(){

        boolean retorno = true;

        if(telefono.length() != 9){
            retorno = false;
        }
        return retorno;
    }

    public boolean validarRegistro(){

        boolean retorno=true;

        if(nombre.isEmpty())
        {
            nom.setError("No se permiten campos vacíos");
            retorno=false;
        }
        if (apellido.isEmpty())
        {
            ape.setError("No se permiten campos vacíos");
            retorno=false;
        }
        if (direccion.isEmpty())
        {
            dir.setError("No se permiten campos vacíos");
            retorno=false;
        }
        if (telefono.isEmpty() )
        {
            tel.setError("No se permiten campos vacíos");
            retorno=false;
        }
        if (correo.isEmpty())
        {
            cor.setError("No se permiten campos vacíos");
            retorno=false;
        }
        if (contrasena.isEmpty())
        {
            con.setError("No se permiten campos vacíos");
            retorno=false;
        }
        if (repContrasena.isEmpty())
        {
            rCon.setError("No se permiten campos vacíos");
            retorno=false;
        }
        return retorno;
    }

    private void Registro() {

        StringRequest stringRequest = new StringRequest(Request.Method.POST, URL_REGIST,
                new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                try {
                    JSONObject jsonObject = new JSONObject(response);
                    String success = jsonObject.getString("success");
                    if (success.equals("1")) {
                        Toast.makeText(RegistroActivity.this, "Se ha registrado exitosamente", Toast.LENGTH_LONG).show();
                    } else {
                        Toast.makeText(RegistroActivity.this, "El correo ingresado ya existe", Toast.LENGTH_LONG).show();
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                    Toast.makeText(RegistroActivity.this, "Error al registrar! " + e.toString(), Toast.LENGTH_SHORT).show();
                }
            }
            }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(RegistroActivity.this, "Error al registrar! " + error.toString(), Toast.LENGTH_SHORT).show();
            }
        }) {
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> parametros = new HashMap<>();
                parametros.put("nombre", nombre);
                parametros.put("apellido", apellido);
                parametros.put("fk_ciudad", fk_ciudad);
                parametros.put("direccion", direccion);
                parametros.put("telefono", telefono);
                parametros.put("correo", correo);
                parametros.put("contrasena", contrasena);
                return parametros;

            }
        };
        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);

    }
    public void onClickCancelar(View view) {
        finish();

    }
}

Gracias de antemano!

php – Como extraer cada elemento del array y realizar un insert independiente por cada uno

foreach ($check_N2 = $_POST('check_N2') as $val_N2) {


    $empresa = $_POST('empresa');
    $id_empresa = implode(" ", $empresa);
    $fecha_registro = date("Y-m-d H:i:s");

    $query = mysqli_query($con, "SELECT COUNT(*) as cont FROM respuestas");

    if ($row = mysqli_fetch_array($query)) {
        $cont = $row('cont') + 1; // incrementa   
        $num = sprintf("%'.02d", $cont); // formato con 5 digitos
        $codigo = "RES" . "-" . $num; // se concatena con el año actual
    }

    $sql = "INSERT INTO respuestas (id_empresa, codigo, nombre, fecha_registro) VALUES ("$id_empresa","$codigo", "$$val_N2", "$fecha_registro")";

}