Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Cargar nuevo dato en combo sin recargar la pagina

Estas en el tema de Cargar nuevo dato en combo sin recargar la pagina en el foro de PHP en Foros del Web. Buenas tardes tengo un problema, tengo un formulario donde cuento con un <select> el cual lo lleno con los datos de la BD. El problema ...
  #1 (permalink)  
Antiguo 29/01/2015, 10:31
 
Fecha de Ingreso: julio-2013
Ubicación: Durango, Dgo
Mensajes: 108
Antigüedad: 10 años, 9 meses
Puntos: 8
Cargar nuevo dato en combo sin recargar la pagina

Buenas tardes tengo un problema, tengo un formulario donde cuento con un <select> el cual lo lleno con los datos de la BD.

El problema es que al estar activa la pagina y agregar un dato a la BD de doy click al <select> y siguen apareciendo los mismos datos y el nuevo no.

quisiera saber si existe alguna manera para que al dar de click nuevamente al combo me salga el registro agregado previamente sin tener que recargar la pagina.
  #2 (permalink)  
Antiguo 29/01/2015, 10:49
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Cargar nuevo dato en combo sin recargar la pagina

con Ajax se puede
  #3 (permalink)  
Antiguo 29/01/2015, 11:34
 
Fecha de Ingreso: marzo-2012
Mensajes: 180
Antigüedad: 12 años, 1 mes
Puntos: 2
Respuesta: Cargar nuevo dato en combo sin recargar la pagina

Ajax o jquery

jQuery - AJAX load() Method
  #4 (permalink)  
Antiguo 29/01/2015, 14:35
 
Fecha de Ingreso: julio-2013
Ubicación: Durango, Dgo
Mensajes: 108
Antigüedad: 10 años, 9 meses
Puntos: 8
Respuesta: Cargar nuevo dato en combo sin recargar la pagina

Entiendo que se ha de poder con ajax, ya intente cargar el combo con ajax pero me pasa lo mismo entonces quisiera saber si alguien me puede decir como hacer lo que quiero con ajax?

gracias
  #5 (permalink)  
Antiguo 29/01/2015, 14:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cargar nuevo dato en combo sin recargar la pagina

Me imagino que si no sale es porque algo harás mal, pero es prácticamente imposible decirte qué hacer exactamente porque desconocemos tu código: adivinos no somos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 29/01/2015, 16:13
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Cargar nuevo dato en combo sin recargar la pagina

Pues, creo que lo que el quiere que haga es que cuando alguien cargue al select este se modifique solito.
tendrias que hacer un refresh al ajax para que pregunte por ejemplo cada 3 segundos si en la base cambio pues que gatille un nuevo proceso que recargue el contenido del select .

ahora esto no es nada bueno cuando hay muchos usuario por las peticiones pero es lo que veo mejorcito.

lo otro seria que muestre el select solo cuando llegue a esa parte poniendo una funcion en el el input anterior al select para que lo refresque con la info que tenga hasta ese momento
  #7 (permalink)  
Antiguo 30/01/2015, 12:27
 
Fecha de Ingreso: julio-2013
Ubicación: Durango, Dgo
Mensajes: 108
Antigüedad: 10 años, 9 meses
Puntos: 8
Respuesta: Cargar nuevo dato en combo sin recargar la pagina

pateketrueke no se necesita ser adivino como dices ya que como dije solo tengo un combo que se llena de la base de datos pero el problema es que al agregar un registro nuevo tengo que refrescar la pagina para que me aparezca el nuevo registro (cosa que me borra los datos ya agregados previamente)

de igual manera aquí esta el código del combo haber si alguien me puede ayudar a hacerlo con ajax para lograr lo que quiero o que sugerencia me pueden dar

Código PHP:
<select style="width:150px" name="modelo" id="modelo" required>
               <option></option>
            
            
                <?php //codigo para llenar combo con la base de datos 
                    
$modelo=mysql_query("select * from modelos",$con) or die("Problemas en el select:".mysql_error());
                    while(
$row mysql_fetch_array($modelo))
                        {
                            echo
'<OPTION VALUE="'.$row['id_modelo'].'">'.$row['nombre_modelo'].'</OPTION>';
                        }
                        
//fin del codigo para llenar el combo
                
?>
               </select>

Última edición por matrixre9; 30/01/2015 a las 12:27 Razón: error
  #8 (permalink)  
Antiguo 30/01/2015, 13:04
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 36
Respuesta: Cargar nuevo dato en combo sin recargar la pagina

Desde donde quieres insertar el nuevo elemento? Me imagino que desde una caja de texto en la misma pagina, si ó no?
  #9 (permalink)  
Antiguo 30/01/2015, 15:11
 
Fecha de Ingreso: julio-2013
Ubicación: Durango, Dgo
Mensajes: 108
Antigüedad: 10 años, 9 meses
Puntos: 8
Respuesta: Cargar nuevo dato en combo sin recargar la pagina

Quiero crear una pequeña ventana que aparezca ingresar en nuevo dato y con un botón guardar que lo ingrese a la base de datos.

ahorita lo estoy haciendo manual ingreso el dato directo en la BD y verifico el combo y no aparece el registro
  #10 (permalink)  
Antiguo 01/02/2015, 05:44
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 36
Respuesta: Cargar nuevo dato en combo sin recargar la pagina

matrixre9, te dejo un ejemplo, que construi a base de tus necesidades, observalo y adaptalo a tu trabajo.

Estrustura de la base datos:

Código MySQL:
Ver original
  1. DROP TABLE IF EXISTS `tb_personas`;
  2. CREATE TABLE `tb_personas` (
  3.   `id_personas` int(11) NOT NULL AUTO_INCREMENT,
  4.   `nombre_personas` varchar(255) DEFAULT NULL,
  5.   PRIMARY KEY (`id_personas`)

Conexion a la db:

Código PHP:
Ver original
  1. $db_host = "localhost";
  2. $db_usuario = "root";
  3. $db_password = "";
  4. $db_basedatos = "db_pruebas";
  5. $mysqli = new mysqli($db_host, $db_usuario, $db_password, $db_basedatos);
  #11 (permalink)  
Antiguo 01/02/2015, 05:47
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 36
Respuesta: Cargar nuevo dato en combo sin recargar la pagina

Pagina para los usuarios:

Código HTML:
Ver original
  1. <script type="text/javascript" language="javascript" src="ajax.js"></script>
  2. <input type="text"  id="obj_text" />
  3. <input type="button" id="obj_btn" value="Enviar" onclick="enviar_personas()" /><br><br>
  4. <div id="resultados"><?php include ('personas.php'); ?> </div>
  #12 (permalink)  
Antiguo 01/02/2015, 05:48
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 36
Respuesta: Cargar nuevo dato en combo sin recargar la pagina

Fichero ajax.js

Código Javascript:
Ver original
  1. //========================
  2. //CREACION DEL OBJETO AJAX
  3. //========================
  4. function objetoAjax(){
  5.     var xmlhttp=false;
  6.     try {
  7.         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  8.     } catch (e) {
  9.         try {
  10.            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  11.         } catch (E) {
  12.             xmlhttp = false;
  13.         }
  14.     }
  15.  
  16.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  17.         xmlhttp = new XMLHttpRequest();
  18.     }
  19.     return xmlhttp;
  20. }
  21.  
  22.  
  23. //==========================================================
  24. function enviar_personas(){
  25.     divResultado = document.getElementById('resultados');
  26.     nombre = document.getElementById('obj_text').value;
  27.  
  28.     ajax=objetoAjax();
  29.     ajax.open("POST", "accion.php");
  30.     ajax.onreadystatechange=function() {
  31.         if (ajax.readyState==4) {
  32.             divResultado.innerHTML = ajax.responseText
  33.         }
  34.     }
  35.     ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  36.     ajax.send("nombre="+nombre)
  37. }
  #13 (permalink)  
Antiguo 01/02/2015, 05:49
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 36
Respuesta: Cargar nuevo dato en combo sin recargar la pagina

Pagina accion.php

Código PHP:
Ver original
  1. include ('conn.php');
  2. $mysqli->query("INSERT INTO tb_personas SET nombre_personas='".$_POST['nombre']."'");
  3. include ('personas.php');

Pagina personas.php

Código PHP:
Ver original
  1. <select name="select" id="obj_personas">
  2. <option value=""></option>
  3. <?php
  4. include ('conn.php');
  5. $rs = $mysqli->query("SELECT * FROM tb_personas");
  6. while ($row = $rs->fetch_assoc()){
  7.     echo "<option value='" .$row['id_personas'] ."'>" .$row['nombre_personas'] ."</option>";
  8. }
  9.  
  10. ?>
  11. </select>

Espero resuelvas...
  #14 (permalink)  
Antiguo 01/02/2015, 16:17
 
Fecha de Ingreso: julio-2013
Ubicación: Durango, Dgo
Mensajes: 108
Antigüedad: 10 años, 9 meses
Puntos: 8
Respuesta: Cargar nuevo dato en combo sin recargar la pagina

Excelente amigo hice una prueba con un solo combo y funciono perfecto es parecido a lo que quería me es de mucha ayuda, de nuevo muchas gracias.

Etiquetas: combo, dato, formulario, registro, select
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 21:04.