Foros del Web » Programando para Internet » Javascript »

Function y VAriables Globales

Estas en el tema de Function y VAriables Globales en el foro de Javascript en Foros del Web. Buenas Me estoy dando cabezazos con una function la cual no consigo sacar las variables fuera de ella y seguro que es una totntería.... Pongo ...
  #1 (permalink)  
Antiguo 04/12/2010, 04:51
 
Fecha de Ingreso: diciembre-2010
Mensajes: 4
Antigüedad: 11 años, 7 meses
Puntos: 0
Function y VAriables Globales

Buenas

Me estoy dando cabezazos con una function la cual no consigo sacar las variables fuera de ella y seguro que es una totntería.... Pongo un ejemplo simple para ver si me podéis ayudar

Desde un script en PHP envío un valor (en este ejemplo 4) a un script Javascript, el cual lo recoge y lo imprime de la siguiente manera:

1.-Alert bien 4
2.-Alert bien 4
3.-Alert Mal (Undefined)

PHP:
Código:
<script type="text/javascript" src="./scripts/seleccion3.js"></script>
<script type="text/javascript">venga(4);</script>
JAVA
Código:
function venga(a){
	alert(a); 
	a10=a;  
                alert(a10);

}
venga();
alert(a10);
Gracias
  #2 (permalink)  
Antiguo 04/12/2010, 06:01
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 12 años, 1 mes
Puntos: 310
Respuesta: Function y VAriables Globales

¿Será porque cuando llamas a la función no le estás pasando ningún parametro?
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 04/12/2010, 09:36
 
Fecha de Ingreso: diciembre-2010
Mensajes: 4
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Function y VAriables Globales

Hola _cronos2

Gracias por tu respuesta, ya veo lo que quieres decir, pero entonces como puedo rescatar o hacer que le valor de la variable a10 sea combierta en una variable global y así poder utilizarlo fuera de esa función? Ya que si no la llamo no me devuelve nada

Código:
function venga(a){
	a10=a;  
                
}
alert(a10); (Aquí no me devuelve nada)
  #4 (permalink)  
Antiguo 04/12/2010, 12:11
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 13 años, 2 meses
Puntos: 1485
Respuesta: Function y VAriables Globales

tienes que al menos invocar la funcion una vez con un valor. si no invocas la funcion, la variable a10 no se crea.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 05/12/2010, 00:03
 
Fecha de Ingreso: diciembre-2010
Mensajes: 4
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Function y VAriables Globales

Gracias a todos

La verdad que con Javascript estoy muy pegado, pero la idea es que yo ya he llamado la función desde un script en PHP donde le ha dado el valor a la variable, y dentro de la función en el script de Javascript lo leo perfectamente, pero ahora necesio que ese valor poder utilizarlo en otras partes del mismo Javascript, es decir:

Mando la info desde PHP y quiero utilizarla en todo el script de Javascript. ¿como se hace?

Saludos
  #6 (permalink)  
Antiguo 05/12/2010, 00:27
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 13 años, 2 meses
Puntos: 1485
Respuesta: Function y VAriables Globales

en teoría, según lo que has explicado se supone que todo va bien. es decir, la variable global debe estar definida al menos luego de la primera invocación. ahora bien, dejando a un lado lo que intentas hacer y enfocandonos más en la metodología... ¿no te sería más cómodo si creas la variable en el ámbito global? en verdad, no me hace sentido pasar un valor por una función que crea una variable global. claro, pudiera tener su aplicación en casos particulares pero este no lo es. a la solución que voy es crear una variable en javascript y como valor imprimes el resultado de php.
Código:
// desde el ambito global de javascript ;
var variable = <?php echo contenido a imprimir; ?>;
por supuesto, dicho fragmento va en:
1) cualquier documento que php pueda analizar
2) si es un documento js, puede ser incluido directamente asi. si es un documento php/html, va entre las etiquetas <script>.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 11/12/2010, 06:27
 
Fecha de Ingreso: diciembre-2010
Mensajes: 4
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Function y VAriables Globales

Muchas Gracias por la respuesta, pero sigo atascado.... os pongo excatamente lo que quiero hacer y así seguro que me entendéis,

Tengo una select en cascada o dependiente que funciona perfectamente, pero las variables estan en el docuemnto Javascript y son estáticas (en el ejemplo Almeria, Cadiz, etc..). Lo que necesito es que estas variables estáticas sean dínamicas cojidas desde las tablas pero no se como envíar los datos desde el PHP al Javasricpt (son 2 documentos distintos).


En pocas palabras la AndaluciaArray quiero enviarsela desde el PHP al --> Javasript

Gracias de antemano


Script en PHP
Código PHP:
<td>
                              <
select name="cautonoma" onChange="selecautonoma(document.newpoi,document.newpoi.cautonoma.options[document.newpoi.cautonoma.selectedIndex].value)">
                              <
option value="">Selecciona</option>
                              <
option value="Andalucia">Andalucia</option>
                              <
option value="Aragon">Aragon</option>
                                                          </
select></b>
                             </
td>
                        </
tr>
                        <
tr>
                            <
td>Provincia:
                            </
td>
                            <
td>
                             <
select name="provinciapoi">
                             </
select>
                            </
td>
                        </
tr
Script en Javascript
Código:
var AndaluciaArray =  new Array("('Comunidad','',true,true)",
"('Almeria')",
"('Cadiz')",
"('Cordoba')",
"('Granada')",
"('Huelva')",
"('Jaen')",
"('Malaga')",
"('Sevilla')");
var AragonArray =  new Array("('Comunidad','',true,true)",
"('Huesca')",
"('Teruel')",
"('Zaragoza')");
etc.....

function selecautonoma(inForm,selected) {
var selectedArray = eval(selected + "Array");
while (selectedArray.length < inForm.provinciapoi.options.length) {
inForm.provinciapoi.options[(inForm.provinciapoi.options.length - 1)] = null;
}
for (var i=0; i < selectedArray.length; i++) {
eval("inForm.provinciapoi.options[i]=" + "new Option" + selectedArray[i]);
}
if (inForm.cautonoma.options[0].value == '') {
inForm.cautonoma.options[0]= null;
if ( navigator.appName == 'Netscape') {
if (parseInt(navigator.appVersion) < 4) {
window.history.go(0);
}
else {   	
if (navigator.platform == 'Win32' || navigator.platform == 'Win16') {
window.history.go(0);
            }
         }
      }
   }
}
  #8 (permalink)  
Antiguo 11/12/2010, 17:44
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 13 años, 2 meses
Puntos: 1485
Respuesta: Function y VAriables Globales

tu duda parece mas de php que de javascript, porque si quieres que sea con datos de una tabla entonces por obligacion el problema va por lenguaje servidor. tienes varias opciones y todas tienen que ver con impresion de cadenas.
  • puedes configurar el servidor para que php analice los archivos *.js de modo que puedas escribir codigo php directamente en dicho archivo.
  • otra alternativa es crear un documento *.js al vuelo y cargaralo en el atributo src de <script>. dicho documento en realidad es un documento php que envia como header text/javascript de modo que el navegador entienda que se trata de javascript. igual que el anterior, imprimes el contenido en formato javascript.
  • esta alternativa es parecida a la anterior, solo que en lugar crear el header y cargar el documento con <script src=...>, simplemente en el documento php creas la etiqueta <script> y dentro de esta imprimes el contenido.

por supuesto, el contenido impreso desde php debe de imprimirse antes de cualquier codigo javascript que lo utilice. ejemplos...
Código:
// ejemplo de la segunda alternativa ;
<script src="document.php"></script><script src="funciones.js"></script>

// ejemplo de la tercera alternativa ;
<script>
<?php
// imprimir contenido ;
?>
</script>
<script src="funciones.js"></script>
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 11/12/2010 a las 17:51 Razón: error en ejemplo

Etiquetas: function, globales, variables
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 01:31.