Foros del Web » Programando para Internet » PHP »

Problema con return, solo me funciona el echo!

Estas en el tema de Problema con return, solo me funciona el echo! en el foro de PHP en Foros del Web. Sé que es una pregunta de novato pero realmente me intriga, tengo una colección de funciones sencillonas pero la última de ellas (la del select ...
  #1 (permalink)  
Antiguo 11/09/2008, 16:04
 
Fecha de Ingreso: septiembre-2008
Mensajes: 6
Antigüedad: 11 años, 2 meses
Puntos: 0
Problema con return, solo me funciona el echo!

Sé que es una pregunta de novato pero realmente me intriga, tengo una colección de funciones sencillonas pero la última de ellas (la del select de paises) me funciona solo con echo, no con return.

Aqui está el código de ésa función:
Código PHP:
## dibuja una caja de select con todos los paises y los estados de México, con un nombre de input indicado. ## 
function dibujaPais($nombre) {
    
$paises = array('Afganistan','Albania','Alemania','Anguila','Antigua y Barbuda','Antillas Neerlandesas','Arabia Saudita','Argentina','Armenia','Aruba','Australia','Austria','Azerbaijan','Bahamas','Bahrein','Bangladesh','Barbados','Belice','Benin','Bermuda','Bielorrusia','Bolivia','Bosnia-Herzegovina','Botswana','Brasil','Brunei','Bulgaria','Burkina faso','Burundi','Belgica','Cambodia','Camerun','Canada','Chile','China','Chipre','Colombia','Congo','Congo','Republica Democratica de','Corea','Republica de','Costa Rica','Costa de Marfil','Croacia','Dinamarca','Dominica','Ecuador','Egipto','El Salvador','Emiratos Árabes Unidos','Eritrea','España','Estados Unidos','Estonia','Etiopia','Fiji','Filipinas','Finlandia','Francia','Gambia','Georgia','Ghana','Gibraltar','Granada','Grecia','Guam','Guatemala','Guinea','Guinea Ecuatorial','Guinea-Bissau','Guyana','Haiti','Honduras','Hong Kong','India','Indonesia','Irlanda','Islandia','Islas Marshall','Islas Turcas y Caicos','Islas Virgenes Britanicas','Islas Virgenes de los Estados Unidos','Islas caiman','Islas de cabo verde','Israel','Italia','Jamaica','Japon','Jordania','Kazajstan','Kenia','Kirguizistan','Kosovo','Kuwait','Laos','Letonia','Liberia','Libyan Arab Jamahiriya','Lituania','Libano','Macao','Macedonia','Malasia','Malawi','Maldivas','Malta','Mali','Marruecos','Mauricio','Mauritania','Micronesia','Estados Federados de','Moldova','Republica de','Mongolia','Mozambique','Mexico-Aguascalientes','Mexico-Baja California','Mexico-Baja California Sur','Mexico-Campeche','Mexico-Chihuahua','Mexico-Chiapas','Mexico-Coahuila','Mexico-Colima','Mexico-Distrito Federal','Mexico-Durango','Mexico-Guerrero','Mexico-Guanajuato','Mexico-Hidalgo','Mexico-Jalisco','Mexico-Michoacan','Mexico-Mexico','Mexico-Morelos','Mexico-Nayarit','Mexico-Nuevo Leon','Mexico-Oaxaca','Mexico-Puebla','Mexico-Quintana Roo','Mexico-Queretaro','Mexico-Sinaloa','Mexico-San Luis Potosi','Mexico-Sonora','Mexico-Tabasco','Mexico-Tamaulipas','Mexico-Tlaxcala','Mexico-Veracruz','Mexico-Yucatan','Mexico-Zacatecas','Namibia','Nepal','Nicaragua','Nigeria','Noruega','Nueva Zelanda','Niger','Oman','Pakistan','Palau','Palestina','Panama','Paraguay','Paises Bajos','Peru','Polonia','Portugal','Puerto Rico','Qatar','Reino Unido','Republica Checa','Republica Dominicana','Ruanda','Rumania','Rusia','Saint Kitts y Nevis','Samoa','Samoa Americana','San Vicente','Santa Lucia','Santo Tome y Principe','Senegal','Seychelles','Sierra Leona','Singapur','Sri Lanka','Sudafrica','Suecia','Suiza','Surinam','Tailandia','Taiwan','Tanzania','Republica Unida de','Tayikistan','Togo','Tonga','Trinidad y Tobago','Turquia','Tunez','Ucrania','Uganda','Uruguay','Uzbekistan','Vanuatu','Venezuela','Vietnam','Yemen','Yibuti','Zambia','Zimbabwe');

    
$select "<select name='".$nombre."'>
    <option value='' selected>Seleccione...</option>"
;
    foreach(
$paises as $pais) {
        
$select .= "<option>".$pais."</option>";
    }
    
$select .= "</select>";
    echo 
$select;

  #2 (permalink)  
Antiguo 11/09/2008, 16:09
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 11 años, 6 meses
Puntos: 43
Respuesta: Problema con return, solo me funciona el echo!

En realidad lo que debes hacer es un echo.
ya que tienes que imprimir la cadena que tiene todo el select, pero si deseas retornar esta cadena, tambn deberia funcionar.

$sel=dibujaPais("paises");

y el return....

return $select;
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #3 (permalink)  
Antiguo 11/09/2008, 16:09
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 11 años, 4 meses
Puntos: 416
Respuesta: Problema con return, solo me funciona el echo!

Si lo haces con return tienes que hacerle echo a tu funcion "dibujaPais".

echo dibujaPais("nose");
  #4 (permalink)  
Antiguo 11/09/2008, 16:10
 
Fecha de Ingreso: septiembre-2008
Mensajes: 6
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Problema con return, solo me funciona el echo!

Que bien haber encontrado un foro con actividad, e hispano mejor!

Así llamo a mi función "dibujaPais":

Código HTML:
Pais: <?php dibujaPais('paisDatosGenerales'); ?><br /><br /> 
  #5 (permalink)  
Antiguo 11/09/2008, 16:12
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 11 años, 6 meses
Puntos: 43
Respuesta: Problema con return, solo me funciona el echo!

Cita:
Iniciado por eescobedo Ver Mensaje
Que bien haber encontrado un foro con actividad, e hispano mejor!

Así llamo a mi función "dibujaPais":

Código HTML:
Pais: <?php dibujaPais('paisDatosGenerales'); ?><br /><br /> 
bueno debes colocar un echo antes de la funcion, para que imprima lo que retornas, si retornas el valor y no lo imprimes en la funcion.

Cita:
Pais: <?php echo dibujaPais('paisDatosGenerales'); ?><br /><br />
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #6 (permalink)  
Antiguo 11/09/2008, 16:13
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 11 años, 4 meses
Puntos: 416
Respuesta: Problema con return, solo me funciona el echo!

Si tu funcion la tienes con RETURN tienes que imprimir el resultado que te retorna la funcion.
Entonces seria:

Pais: <?php echo dibujaPais('paisDatosGenerales'); ?><br /><br />

(Eso si tienes tu funcion con RETURN)

EDIT:
:P Otra vez hemos chocado.

Yo de todo modos me tengo que ir :P Asi evito los choques.

Saludos
  #7 (permalink)  
Antiguo 11/09/2008, 16:13
 
Fecha de Ingreso: septiembre-2008
Mensajes: 6
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Problema con return, solo me funciona el echo!

Cita:
Iniciado por Ronruby Ver Mensaje
Si lo haces con return tienes que hacerle echo a tu funcion "dibujaPais".

echo dibujaPais("nose");
Excelente, sólo habría que haber probado un poco más con el código, pero me dá gusto haber encontrado un buen foro, aporto mi pequeñisima colección de funciones que emepezé hace 1 semana y he ido haciendo bajo demanda en mi trabajo.

Gracias por las respuestas!

Código PHP:
<?php
## ########################################################### ##
# Framework de funciones utiles para usos cotidianos. Pronto    #
# incluira muchisimas maneras mas de hacer las cosas con AJAX y #
# con muchos otros metodos para agilizar los llamados a PHP.    #
# Autor: Eliezer Cazares, [email protected] 05/09/2008. #
## ########################################################### ##
/*    cadena de inclusion:
 *    require_once($_SERVER['DOCUMENT_ROOT'].'/intranet/framework.php');
 */


## dibuja un link con parametros requeridos. ## 
function dibujaLink($archivo$ventana$estilo$titulo) {
    return 
'<a href="'.$archivo.'" target="'.$ventana.'" class="'.$estilo.'">'.$titulo.'</a>';
}


## crea una conexion en el servidor, mediante el usuario y contraseña, a una base de datos indicada.
function conexion($server,$user,$pass,$db) {
    
mysql_connect($server$user$pass) or die(mysql_error());
    
mysql_select_db($db) or die(mysql_error());
}


## envia un correo de una direccion indicada a otra direccion indicada ##
function mandaCorreo($deParteDe$correoOrigen$correoDestino$tema$mensaje) {
    
$header "From: "$deParteDe " <" $correoOrigen ">\r\n";
    
$mail mail($correoDestino$tema$mensaje$header);
    if(!
mail) {
        return 
'El envío del correo fallo, verifique la configuración de puertos y la configuracion de sendmail en php.ini';
    } else {
        return 
'El envío del correo resulto exitoso!';
    }
}


## convierte un numero int sin o con formato, rango entre 1 y 12 a el mes equivalente en el calendario. ## 
function cualMesATexto($mes) {
    if(
$mes==='1' || $mes ==='01') {
        return 
'Enero';
    } elseif(
$mes==='2' || $mes ==='02') {
        return 
'Febrero';
    } elseif(
$mes==='3' || $mes ==='03') {
        return 
'Marzo';
    } elseif(
$mes==='4' || $mes ==='04') {
        return 
'Abril';
    } elseif(
$mes==='5' || $mes ==='05') {
        return 
'Mayo';
    } elseif(
$mes==='6' || $mes ==='06') {
        return 
'Junio';
    } elseif(
$mes==='7' || $mes ==='07') {
        return 
'Julio';
    } elseif(
$mes==='8' || $mes ==='08') {
        return 
'Agosto';
    } elseif(
$mes==='9' || $mes ==='09') {
        return 
'Septiembre';
    } elseif(
$mes==='10') {
        return 
'Octubre';
    } elseif(
$mes==='11') {
        return 
'Noviembre';
    } elseif(
$mes==='12') {
        return 
'Diciembre';
    }
}

## dibuja una caja de select con todos los paises y los estados de México, con un nombre de input indicado. ## 
function dibujaPais($nombre) {
    
$paises = array('Afganistan','Albania','Alemania','Anguila','Antigua y Barbuda','Antillas Neerlandesas','Arabia Saudita','Argentina','Armenia','Aruba','Australia','Austria','Azerbaijan','Bahamas','Bahrein','Bangladesh','Barbados','Belice','Benin','Bermuda','Bielorrusia','Bolivia','Bosnia-Herzegovina','Botswana','Brasil','Brunei','Bulgaria','Burkina faso','Burundi','Belgica','Cambodia','Camerun','Canada','Chile','China','Chipre','Colombia','Congo','Congo','Republica Democratica de','Corea','Republica de','Costa Rica','Costa de Marfil','Croacia','Dinamarca','Dominica','Ecuador','Egipto','El Salvador','Emiratos Árabes Unidos','Eritrea','España','Estados Unidos','Estonia','Etiopia','Fiji','Filipinas','Finlandia','Francia','Gambia','Georgia','Ghana','Gibraltar','Granada','Grecia','Guam','Guatemala','Guinea','Guinea Ecuatorial','Guinea-Bissau','Guyana','Haiti','Honduras','Hong Kong','India','Indonesia','Irlanda','Islandia','Islas Marshall','Islas Turcas y Caicos','Islas Virgenes Britanicas','Islas Virgenes de los Estados Unidos','Islas caiman','Islas de cabo verde','Israel','Italia','Jamaica','Japon','Jordania','Kazajstan','Kenia','Kirguizistan','Kosovo','Kuwait','Laos','Letonia','Liberia','Libyan Arab Jamahiriya','Lituania','Libano','Macao','Macedonia','Malasia','Malawi','Maldivas','Malta','Mali','Marruecos','Mauricio','Mauritania','Micronesia','Estados Federados de','Moldova','Republica de','Mongolia','Mozambique','Mexico-Aguascalientes','Mexico-Baja California','Mexico-Baja California Sur','Mexico-Campeche','Mexico-Chihuahua','Mexico-Chiapas','Mexico-Coahuila','Mexico-Colima','Mexico-Distrito Federal','Mexico-Durango','Mexico-Guerrero','Mexico-Guanajuato','Mexico-Hidalgo','Mexico-Jalisco','Mexico-Michoacan','Mexico-Mexico','Mexico-Morelos','Mexico-Nayarit','Mexico-Nuevo Leon','Mexico-Oaxaca','Mexico-Puebla','Mexico-Quintana Roo','Mexico-Queretaro','Mexico-Sinaloa','Mexico-San Luis Potosi','Mexico-Sonora','Mexico-Tabasco','Mexico-Tamaulipas','Mexico-Tlaxcala','Mexico-Veracruz','Mexico-Yucatan','Mexico-Zacatecas','Namibia','Nepal','Nicaragua','Nigeria','Noruega','Nueva Zelanda','Niger','Oman','Pakistan','Palau','Palestina','Panama','Paraguay','Paises Bajos','Peru','Polonia','Portugal','Puerto Rico','Qatar','Reino Unido','Republica Checa','Republica Dominicana','Ruanda','Rumania','Rusia','Saint Kitts y Nevis','Samoa','Samoa Americana','San Vicente','Santa Lucia','Santo Tome y Principe','Senegal','Seychelles','Sierra Leona','Singapur','Sri Lanka','Sudafrica','Suecia','Suiza','Surinam','Tailandia','Taiwan','Tanzania','Republica Unida de','Tayikistan','Togo','Tonga','Trinidad y Tobago','Turquia','Tunez','Ucrania','Uganda','Uruguay','Uzbekistan','Vanuatu','Venezuela','Vietnam','Yemen','Yibuti','Zambia','Zimbabwe');

    
$select "<select name='".$nombre."'>
    <option value='' selected>Seleccione...</option>"
;
    foreach(
$paises as $pais) {
        
$select .= "<option>".$pais."</option>";
    }
    
$select .= "</select>";
    return 
$select;
}
?>
  #8 (permalink)  
Antiguo 11/09/2008, 16:18
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 11 años, 6 meses
Puntos: 43
Respuesta: Problema con return, solo me funciona el echo!

Ahh muy utiles, y bienvenido al foro compañero...
Tendre en cuenta esas funciones, jeje

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
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 19:13.