Foros del Web » Programando para Internet » Javascript »

problemas con select en php y javascript

Estas en el tema de problemas con select en php y javascript en el foro de Javascript en Foros del Web. Salu2 a todos. A ver si consigo explicarme. He creado un formulario y dentro de el un select, pero lo he hecho en php (de ...
  #1 (permalink)  
Antiguo 24/11/2009, 08:37
 
Fecha de Ingreso: julio-2005
Mensajes: 18
Antigüedad: 18 años, 9 meses
Puntos: 0
problemas con select en php y javascript

Salu2 a todos. A ver si consigo explicarme.
He creado un formulario y dentro de el un select, pero lo he hecho en php (de hecho llamo a una función php que está en otro archivo).
Me crea bien el select y lo cargo desde mysql. Hasta aquí sin problemas.
Ahora necesito usar el nombre del select para manipularlo en javascript, y el javascript "no ve" el nombre (la variable) select.

Resumen:
- Creo un select en php dentro de un form
- quiero validar el select usando en una función javascript lo siguiente: nombredelform.nombredelselect.selectedIndex (por ejemplo)
- la función javascript no reconoce (no ve) el select

Código:
function cambiamunicipio(frm)
{
	var prov=frm.Dprovincia[frm.Dprovincia.selectedIndex].value;
	alert(prov);
}

<form name="admision">
 <?php
	$query = "select Provincia from Provincias";
	$more="onChange='cambiamunicipio(this.form);'";
	echo query_selector('Dprovincia',$more, $query, '','');
  ?>
</form>
Código PHP:
function query_selector($name,$more$query$default='',$label='')
{
    
$handle db_connect();
    
$result $handle->query($query);
    
      
$ret "<select name={$name} {$more}>\n";
        
$selected 'selected="selected"';
        if(
$label!='')$ret .="<option value=\"{$label}\" {$selected}>{$label}</option>\n";
     for (
$i=0$i $result->num_rows$i++){
        
$option $result->fetch_array();
        
$selected = ($option[0]==$default) ? 'selected="selected"' '';
        
$ret .= "<option value=\"{$option[0]}\" {$selected}>{$option[0]}</option>\n";
    }
    
$ret.= "</select>\n";
    return 
$ret;

El problema es que:
La función cambiamunicipio (javascript) no reconoce el select Dprovincia

Gracias


PD: me han dicho que pase el post este desde el foro de php a este de javascript que es más adecuado.
  #2 (permalink)  
Antiguo 24/11/2009, 08:52
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: problemas con select en php y javascript

dado el desconocimiento del proposito para invocar dicha funcion, lo unico que se me ocurre decirte es que estas dando mucha vuelta. me explico, ¿por que pasar la referencia del formulario para llegar al select pudiendo pasar directamente el select? es decir, en la invocacion a la funcion solo tienes que pasarle this. y en la funcion ya tienes la referencia de ese select, en este caso, en el argumento frm.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 24/11/2009, 09:12
 
Fecha de Ingreso: julio-2005
Mensajes: 18
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: problemas con select en php y javascript

El propósito de esta función es solo hacer una prueba para ver si le llega la variable. En realidad necesito hacer el mismo procedimiento en varias funciones sobre todo para validar variables, o bien para chequear variables y dependiendo del valor poner en enabled o disabled algunas casillas del formulario.
El pasarle el form entero es porque esta función es un ejemplo, pero en esta función (o en otras) necesito más de una variable del form (varios select varios textbox,...). Por eso le paso todo el form.
De todas formas he probado a pasarle directamente el select (con this) y sigue sin funcionar. Es decir, la función cambiamunicipio no se entera de la variable form que le estoy dando.

Salu2
  #4 (permalink)  
Antiguo 24/11/2009, 11:03
 
Fecha de Ingreso: noviembre-2009
Mensajes: 9
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: problemas con select en php y javascript

Una pregunta
en la parte que tienes

Cita:
function cambiamunicipio(frm)
{
var prov=frm.Dprovincia[frm.Dprovincia.selectedIndex].value;
alert(prov);
}

<form name="admision">
<?php
$query = "select Provincia from Provincias";
$more="onChange='cambiamunicipio(this.form);'";
echo query_selector('Dprovincia',$more, $query, '','');
?>
</form>
Porque tu formulario tiene name="admision" y en la funcion cambiamunicipio lo referencias como frm.Dprovincia??
Tal vez eso sea
  #5 (permalink)  
Antiguo 24/11/2009, 11:46
 
Fecha de Ingreso: julio-2005
Mensajes: 18
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: problemas con select en php y javascript

Porque la variable de la función no tiene por qué llamarse de la misma forma que el nombre de la variable que se le pasa.

Es decir, yo le paso una variable a una función que se llama "pepe", y en la función se puede llamar "juan"

function mmmmm(juan)
{
juan........
}

call mmmmm(pepe)

Eso es común en cualquier lenguaje de programación

Salu2
  #6 (permalink)  
Antiguo 24/11/2009, 12:08
 
Fecha de Ingreso: noviembre-2009
Mensajes: 9
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: problemas con select en php y javascript

ups no me habia percatado del parametro de la funcion.....

La verdad yo evito pasar elementos de formulario y mucho menos un formulario completo a una funcion de JS.

Por que no intentas acceder directamente a los elementos

En la funcion cambiamunicipio

var prov=document.getElementById('Dprovincia').value;
alert(prov);

o tambien de esta forma:
document.forms[0].Dprovincia.value;
  #7 (permalink)  
Antiguo 24/11/2009, 17:43
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: problemas con select en php y javascript

a esto era lo que me referia con pasarte this.
Código:
// javascript;
function cambiamunicipio(frm){
	alert(frm.value);
}

// php;
$more="onChange='cambiamunicipio(this);'";
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
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 10:24.