Pedir presupuesto

Rellenar un Combobox con los paises del mundo con Php y MySql

Hace un par de dias publiqué un post «Tabla Mysql con lista de paises del mundo» en el que os ofrecía un archivo txt con el que podeis crear la tabla necesaria y los registros para tener todos los paises en vuestras bases de datos MySQL.

Pues ahora el siguiente paso es utilizarlo por ejemplo para Rellenar un Combobox con todos los paises del mundo, así que manos a la obra.

Lo primero que tendremos que hacer es crear un archivo llamado «crear_combo.php»:
[php]
include(«funciones.php»);
cargar_combo(«tabla»,»id»,»opcion»);
?> [/php]

include(«funciones.php»): Con esta linea lo que hacemos es incluir el archivo con las funciones que ahora veremos.
cargar_combo(«tabla»,»id»,»opcion»): Llamamos a la función cargar_combo del archivo funciones.php, donde indicamos:

  • Tabla: Nombre de la tabla donde se encuentran los paises (en nuestro caso «pai_pais».
  • Id: Nombre del campo Select.
  • Opcion: Campo de la tabla que vamos a mostrar en el combobox. (se pueden poner tantos como se quiera, siempre y cuando en la funcion cargar_combo dentro del archivo funciones.php recoja su valor).

[php] function cargar_combo($tabla,$value,$opt){
$enlace = mysql_connect(«localhost», «root», «») or die(«No pudo conectarse : » . mysql_error());
mysql_select_db(«prueba») or die(«No pudo seleccionarse la BD.»);
$sql = «select * from «.$tabla;
$res = mysql_query($sql) or die (mysql_error());
echo »

«;
mysql_close($enlace);
}
?> [/php]

Podeis descargar el ejemplo aquí:

No dudeis en preguntar cualquier cosa si teneis dudas.

¿Te ha gustado?, Comparte!!

26 comentarios

  1. Muy interesante tu articulo, me servira de mucho, pero tengo un problema con el uso de funciones q esten en otro archivo php. Te explico, tengo un archivo llamado «misFunciones.php» y quiero usar dichas funciones en «principal.php» para ello uso el include(«funciones.php»); en èsta ultima pagina. Pero al mirar el resultado final, no sale nada…. la pagina del navegador esta en blanco ¿a que puede ser debido?

    Gracias de antemano

  2. Muy bueno, es justo lo que me estaba faltando. El problema que se me plantea es que no me muestra en un POST la opcion del menu box. Este es mi codigo, espero que me den una mano:

    <?php
    include(«conex.phtml»);
    $link=Conectarse();
    $tabla=»niveltipo»;
    $value=»id»;
    $opt1=»nombre»;
    $sql = «select * from «.$tabla;
    $res = mysql_query($sql) or die (mysql_error());
    echo «»;
    echo «»;
    echo «Nombre:»;
    echo «»;
    echo «»;
    echo «»;
    echo «»;
    echo «Descripción:»;
    echo «»;
    echo «»;
    echo «»;
    echo «Nivel:»;
    echo «»;
    while($fila = mysql_fetch_assoc($res)){
    echo «$fila[$opt1]»;
    }
    echo «»;
    echo «»;
    echo «»;
    echo «»;
    echo «»;
    echo «»;
    mysql_close($link);
    ?>

    Luego tengo un archivo que muestra las las variables por post

  3. Listo, ya esta, tenia que poner el nombre value y no $tabla, entonces, si quiero mostrar, en el ejemplo de los paises, el valor que se opto, quedaria asi

    echo $_POST[‘tabla’]

    mal estaria poner

    echo $_POST[‘$tabla’]

    Saludos

  4. HOLA. tengo algo parecido PERO NO ME RESULTA. Por favor necesito AYUDA. este es el codigo:

    @import url(«css/calendar-blue.css»);

    Asignación de Turnos a empacadores

     
     

    Fecha:

    Empaquetador:

    [Seleccionar Nombre]

     
     

    window.onload = function() {
    Calendar.setup({
    inputField: «fecha»,
    // weekNumbers: false,
    ifFormat: » %d – %B – %Y»,
    button: «selector»
    });
    }

    *************Aparentemente el error me sale para la última linea () ***** GRACIAS A TODOS

  5. Tu ejemplo es genial. pero he tratado que funcione para combox dependientes y no he podido tu tienes alguna idea al respecto utilizando esta funcion… gracias

    excelente aporte.

  6. Hola muy bueno.. pero una consulta… que si quieres que se autoseleccione osea tu combobox ya estamostrando todos los paises pero por cosas de la vida tienes necesariamente mostrar un pais por ejemplo ‘PERU’ como lo harias

  7. Como puedo validar que el combo sea distinto del primer registro que es » Seleccionar equipo» ? Estoy usando esta funcion :

    function validateEquipo1($equipo_sel1){

    if($equipo_sel1 = » Seleccione equipo»)
    return false;
    else
    return true;
    }

    Despues de haber cargado el combo :

    pero no logro que pase. Desde ya muchas gracias.

  8. Hola Guillermo

    que tal si pruebas con lo siguiente?:

    if ($_POST[‘deporte’])
    return false;
    else
    return true

    Es decir, utiliza los valores que pasas por el método POST en el formulario. Cambia [‘deporte’] por el nombre que le hayas puesto al parámetro «name» del input check del formulario.

    Espero te sirva, saludos.

  9. Estoy utilizando el siguiente codigo. El problema que tengo es que si selecciono un item del combo y me vuelve al primero Seleccione equipo. Es como si se cargara el combo nuevamente y no respetara el campo seleccionado si hay error en otro campo. (Mando solo codigo que tiene que ver con este campo en el form) Desde ya muchas gracias.

    function validateEquipo1($equipo_sel1){

    if($equipo_sel1 = «Seleccione equipo»)
    return false;
    else
    return true;
    }

    //Comprobacion de datos
    //variables valores por defecto
    $equipo_sel1 = «»;
    $equipo_sel1Value = «»;

    //Validacion de datos enviados
    if(isset($_POST[‘send’])){

    if(!validateEquipo1($_POST[‘equipo_sel1’]))
    $equipo_sel1 = «error»;

    //Guardamos valores para que no tenga que reescribirlos

    $equipo_sel1Value = $_POST[‘equipo_sel1’];

    //Comprobamos si todo ha ido bien
    if($equipo_sel1 != «error»){
    $status = 1;
    }
    }

    Dentro del Body

    Modelo del equipo :
    <?php
    if ($equipo_sel1 == "error"):
    echo " (*)»;
    else:
    echo » (*) «;
    endif; ?>

    <?php
    if ($equipo_sel1value = "Seleccione equipo") {
    $enlace = mysql_connect("localhost", "a", "") or die("No pudo conectarse : " . mysql_error());
    mysql_select_db("westr1") or die("No pudo seleccionarse la BD.");
    $sql = "select * from equipos order by modelo";
    $res = mysql_query($sql) or die (mysql_error());

    while($fila = mysql_fetch_array($res)){
    $equipo_sel1 .= "$fila[Modelo]»;
    }
    echo ‘ Seleccione Equipo’.$equipo_sel1,’,/select>’;
    mysql_close($enlace);
    }
    ?>

  10. Antes que nada quiero felicitarte!!! No sabés lo útil que me ha resultado todo esto!
    Ahora te quería hacer una consulta.
    Mi conocimiento de PHP es casi nulo, pero a pesar de todo he logrado adaptarlo para aplicarlo a lo que quiero hacer. La pregunta es, cómo debería hacer si quiero que varios combo boxes barran la base de datos?

    Desde Ya te agradezco!

  11. Hola, logué hacerlo funcionar en varios combo boxes!!
    Ahora la pregunta es, cómo debería hacer para poder con este mismo ejemplo que nos dejaste, capturar los datos para mandarlo a uno variable, y hacer un echo (por ejemplo) para presentarlo en pantalla?

  12. Hola Jonatham, ponerlo en HTML va a ser imposible, piensa que HTML es estático y para hacer combos anidados necesitas dinamismo en la página. Es decir, la página actua según la acción del usuario y la actualiza, esto es imposible hacerlo sólo con HTML.

    No se si te referias a eso.

    Saludos.

  13. una pregunta, me gustaria saber como colocar todos estos datos en un combobox de un formulario con html o es que todo el sitio tiene que ser desarrollado con php, osea me refiero a como «llamar» a este archivo php

  14. Saul, no tiene que ser necesariamente todo el sitio en PHP, eso sí, para que funcione tiene que ser un archivo tunombre.php. Lo que puedes hacer es crear tu página tal y como sería en HTML y en los sitios donde hace falta el código PHP, lo haces poniendo

    [php]

    [/php]

  15. Hola ke tal probe tu codigo pero no me funciono te lo dejo a ver que hice mal, necesito que me muestre los datos que saco de la tabla pero me lo envia vacio
    $result=mysql_query(«select Nombre,Apellidos from registrar where Nombre=’$busqueda’ OR Apellidos=’$busqueda'»,$conexion)or die(mysql_error());
    $row = mysql_fetch_row($result);
    $nombre=$row[1];

    if(($row[1]==$busqueda)||($row[2]==$busqueda))
    {
    $mensaje=»Encontrado»;
    print «alert(‘$mensaje’)»;

    while($fila = mysql_fetch_assoc($result))
    {

    echo «$fila»;
    }

    }

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

¡Pide tu presupuesto!

Completa los campos para poder enviarte un presupuesto

Todos y tu presupuesto son a medida y totalmente personalizados, entendemos que dos proyectos online no pueden ser iguales y que cada cliente tiene unos objetivos y necesidades muy diferentes, es por eso que para elaborar un presupuesto, necesitamos saber de ti, tu proyecto y objetivos.

Los campos marcados con (*) son obligatorios.

La comunicación enviada quedará incorporada a un fichero del que es responsable COLORDEU. Esta comunicación se utilizará exclusivamente para tratar sus datos para atender su solicitud, siempre de acuerdo al Reglamento (UE) 2016/679 (RGPD), la Ley Orgánica 15/1999 (LOPD) y el Real Decreto 1720/2007 de desarrollo de la LOPD), sobre protección de datos. Sus datos no se comunicarán a terceros, excepto por obligación legal, y se mantendrán mientras no solicite su cancelación. En cualquier momento usted puede ejercer los derechos de acceso, rectificación, portabilidad y oposición, o si procede, a la limitación y/o cancelación del tratamiento, comunicándolo por escrito, indicando sus datos personales mediante un email a hola@colordeu.es