PHP - Grabar select dimanicos

 
Vista:
sin imagen de perfil

Grabar select dimanicos

Publicado por enrique (5 intervenciones) el 22/07/2023 02:32:41
Hola a todos. Soy nuevo en PHP. Estoy tratando de hacer un Select dinámico de tres niveles. Estos funcionan bien, tal como lo indica el video donde lo enseñan. El problema es que este graba solo el id de los tres combo box y no el nombre que trae el combo y no he podido dar solución:

<div>Dirección : <select name="direccion" id="cbx_estado">

<option value="0">Seleccionar Dirección</option>
<?php while ($row = $resultado->fetch_assoc()) { ?>
<option value="<?php echo $row['id_estado']; ?>"><?php echo $row['nombre']; ?></option><?php } ?>
</select></div>

<br />

<div>Departamento: <select name="depto" id="cbx_municipio"></select></div>

<br />

<div>Oficina : <select name="oficina" id="cbx_localidad"></select></div>

En la accion grabar tengo el siguiente código:

$area = $_POST["area"];
$fecha = $_POST["fecha"];
$numero = $_POST["numero"];
$direccion = $_POST["cbx_estado"]; // combo direcciones
$depto = $_POST["cbx_municipio"]; // combo departamentos
$oficina = $_POST["cbx_localidad"]; // combo oficinas
$vidautil = $_POST["vidautil"];
$vidarestan = $_POST["vidarestan"];
$tipo = $_POST["tipo"];
$valorbien = $_POST["valorbien"];

$grupo = $_POST["lista1"]; // combo lista1
$continente = $_POST["lista2"]; // combo select2lista

$sql = "INSERT INTO activi (area,fecha,numero,direccion,depto,oficina,vidautil,vidarestan,tipo,valorbien,grupo,subgrupo) VALUES ('$area','$fecha','$numero','$direccion','$id_depto','$id_oficina','$vidautil','$vidarestan','$tipo','$valorbien','$grupo','$continente')";

Grabando solo la mayor parte de los registros y no los de los combos:cbx_estado, cbx_municipio y cbx_localidad.

Como puedo dar solución a esto.
Muchas gracias quien me pueda orientar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Grabar select dimanicos

Publicado por Kathyu (905 intervenciones) el 22/07/2023 09:35:23
A ver si entiendo, cuando dices: "El problema es que este graba solo el id de los tres combo box y no el nombre que trae el combo". Significa que guarda el value del combobox, es así?

Porque si es así, esta trabajando de forma correcta, el dato que se envía es el de los valúes ya que en la DB queda mejor y más organizado, si por el contrario quieres salirte de las buenas practicas y guardar el nombre deberás usar JS para tal fin. (No recomendado).

Por favor lee el post Como formular UNA BUENA PREGUNTA para obtener ayuda más rápido en LWP para que tu pregunta tenga una mayor oportunidad de ser respondida en la comunidad y recuerda Código en Texto y debidamente formateado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Grabar select dimanicos

Publicado por enrique (5 intervenciones) el 23/07/2023 03:52:46
Muchas gracias por tu respuesta.
Pero necesito grabar los nombres de los tres combos y no logro poder hacer.

Este es el select del primer combo: y traigo los tres campos de la primera tabla (primer combo)

$query = "SELECT id_estado,nombre,grupo FROM direcciones ORDER BY id_estado";
$resultado = $mysqli->query($query);

Luego tengo la siguiente rutina, en la cual trato de mostrar los valores de los value. Pero solo muestra los Id de cada combo y no el del Nombre, que es el que finalmente necesito grabar.

<script language="javascript">
$(document).ready(function() {
$("#cbx_estado").change(function() {

$('#cbx_localidad').find('option').remove().end().append('<option value="whatever"></option>').val('whatever');

$("#cbx_estado option:selected").each(function() {
id_estado = $(this).val();
nombre = $(this).val(); // Trato de ver el nombre
$.post("includes/getMunicipio.php", {
id_estado: id_estado

}, function(data) {
$("#cbx_municipio").html(data);
var valor=this.value;
var nombre=$(this).find('option:selected').text();
alert(id_estado); // Mostramos el Id Seleccionado
alert(nombre); // No muestra nada

});
});
})
});

$(document).ready(function() {
$("#cbx_municipio").change(function() {
$("#cbx_municipio option:selected").each(function() {
id_estado = $(this).val();
alert(id_estado); // Mostramos el Id Seleccionado del segundo combobox
$.post("includes/getLocalidad.php", {
id_municipio: id_estado
}, function(data) {
$("#cbx_localidad").html(data);
});
});
})
});
</script>

Si me pueden orientar, como poder ver y luego poder grabar el campo nombre del Select. Ya que soy novato y atorado en esto.

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Grabar select dimanicos

Publicado por Kathyu (905 intervenciones) el 23/07/2023 09:47:46
Pero parece que no leíste el post que te puse. Ese código es muy difícil de ver. Lee lo que te puse para que veas que debes poner tu código entre las etiquetas correctas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Grabar select dimanicos

Publicado por Alejandro (839 intervenciones) el 25/07/2023 00:22:55
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Seguramente estas generando algo cómo
1
<option value="id">nombre</option>

Cómo ya te dijeron, lo que se guarda es el value y es lo indicado.
Si cambiara nombre al tener registrado el id tendrás todos tus registros actualizados sin más que hacer.

Si guardas el nombre, cuando lo cambies deberás cambiar todos tus registros.
1
<option value="nombre">nombre</option>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Grabar select dimanicos

Publicado por Kathyu (905 intervenciones) el 25/07/2023 16:58:09
Y no es nada optimo ni aconsejado.

A nivel más técnico (que no se si he entendido bien) pasas los ID's y luego, en los archivos procesadores, consultas esos ID's a la DB y sacas la información que quieras de ellos, nombres, fechas, lo que quieras.

Por lo general es así como se trabaja.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Grabar select dimanicos

Publicado por Enrique (5 intervenciones) el 25/07/2023 17:11:03
Lo que pasa es que no se cómo pasar el nombre del combo y poder grabar. Creo que no puedo estar grabando números el la tabla, quien los entendería.
Entonces, por ese motivo necesito guardar el valor del combo y no el número.
He tratado de varía maneras, pero no me resulta por mi poco experiencia en php.
Gracias por su orientación y seguiré intentando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Grabar select dimanicos

Publicado por Kathyu (905 intervenciones) el 25/07/2023 19:10:22
En efecto, por tu poca experiencia es que piensas que guardar "NUMEROS" en la DB no es lo mejor.

No tengo otro consejo más que, hagas un curso de OOP en PHP para que entiendas este concepto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Grabar select dimanicos

Publicado por Alejandro (839 intervenciones) el 25/07/2023 22:02:02
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
La respuesta te la he dado, solo revisa tus geters (getMunicipio.php y getLocalidad.php) que sería donde generas tus options. Cambias en el value el id por el nombre

No se trata de entender números, cualquiera que se dedique a esto sabrá hacer la relación para obtener la consulta con los nombres en lugar de los números.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Grabar select dimanicos

Publicado por enrique (5 intervenciones) el 26/07/2023 01:22:02
Muchas gracias Alejandro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar