Foros del Web » Programando para Internet » Javascript »

No me coje el valor del select en una funcion javascript

Estas en el tema de No me coje el valor del select en una funcion javascript en el foro de Javascript en Foros del Web. Hola, tengo el siguiente formulario: Código HTML: <form id= "miform" method= "post" action= "consultes/expedicions/resexpedimagatzem.php" > <table border= "1" > <tr> <td> <select name= "magatzem" class= ...
  #1 (permalink)  
Antiguo 28/06/2006, 04:31
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
No me coje el valor del select en una funcion javascript

Hola,

tengo el siguiente formulario:

Código HTML:
<form  id="miform" method="post" action="consultes/expedicions/resexpedimagatzem.php">
<table border="1">
<tr>
<td>
	<select name="magatzem" class="caixes" onchange="myajax.Link('consultes/expedicions/cons_dataexpedi.php?magatzem='+this.value, 'dates')">
			<option value="0">Escoje un Almacen...</option>
			<?
			while($res_magatzem=mysql_fetch_row($sql_magatzem)){
				echo "<option value=".$res_magatzem[0].">".$res_magatzem[1]."</option>";
			}
			?>
		</select>
</td>
<td>
	<div id="dates">
	<select id="datexp" name="datexp" class="caixes">
			<option value="0">Escoje un Almacen...</option>
	</select>
	</div>
</td>
<td>
<input type="button" class="boto" name="enviar" value="Consultar"  onClick="javascript:validaconsultaexpedi(this.form)">
</td>
</tr>
</table>
</form> 
este form contiene 2 selects dependientes. cuando actualizo el 1ero se actualiza segun la opcion el 2undo.
y cargo esto:
Código PHP:
<?
require("../../../aut_verifica.inc.php"); 
header('Content-Type: text/xml');
echo 
'<?xml version="1.0" encoding="iso-8859-1"?>';
//////////////////////////////////////////////////////
//Segons l'usuari rebaixarem d'un Magatzem o un altre
//////////////////////////////////////////////////////
$id_magatzem=$_GET['magatzem'];
$str_data_expedi="SELECT DISTINCT data FROM moviments
                  WHERE id_magatzem_origen="
.$id_magatzem."
                  AND tipus_moviment='e'"
;
$sql_data_expedi=mysql_query($str_data_expedi) or die(mysql_error());
$res_data_expedi=mysql_fetch_row($sql_data_expedi);
?>
<select id="datexp" name="datexp" class="caixes">
<?
while($res_data_expedi=mysql_fetch_row($sql_data_expedi))
{
    
//Posem la data en format dd/mm/aaaaa
    
$datagir=giragiradata($res_data_expedi[0]);
    
// Imprimir les opcions del select                
    
echo "<option value='".$reg[0]."'>".$datagir."</option>";
}    
?>        
</select>
luego tengo una funcion para comprobar los datos de consulta en javascript:
Código PHP:
function validaconsultaexpedi(miform){
    
    var 
magatzem miform.magatzem.value;
    var 
datexp miform.datexp.value;
    
    
alert(datexp);
    if (
magatzem==0){
        
alert("Tienes que escojer una Almacen.");
        return 
false;
    }else if (
datexp == ''){
        
alert("Tienes que escojer una fecha. Si no se muestra ninguna es que no hay expediciones para ese almacen.");
        return 
false;
    }else {
        
myajax.Form('miform''main');
    }    

y el problema q tengo es q el segundo select, es decir el select q se carga al actualizar el primero, cuando llamo a la funcion no me recoje el valor del select. he mirado los nombres y los id de los campos y son correctos...
sabeis q puede ser?
podria ser q este dentro de un div y q cuando lo recargo ese ya no fuera parte del formulario?


Gracias de antemano,

saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier

Última edición por sergi_climent; 28/06/2006 a las 05:24
  #2 (permalink)  
Antiguo 28/06/2006, 06:03
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
creo que así se recogen los datos de un select...

document.getElementById('select').options[document.getElementById('select').selectedIndex].value

creo que así era... pruebalo... :)
  #3 (permalink)  
Antiguo 28/06/2006, 08:19
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
buenas, gracias por tu respuesta...
lo he probado y tampoco me funciona.
es cuando hago la carga del 2undo select.. parece ser q no me coje el id del campo select. xq sino si q lo hace...

lo unico q tengo la funcion en un fichero .js aparte... kizas por eso no llegue el valor con document.getElementById...? es q no ser...

el link lo hago mediante ajax. y cargo el nuevo select dentro un div. para asi no recargar la pagina....

alguna idea?

saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #4 (permalink)  
Antiguo 28/06/2006, 08:41
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Mira... nosé en que navegador lo probarás... pero si es firefox... ve a Herramientas -> Consola Javascript

le pones limpiar, y luego probas el script... y los errores que salgan (si es que salen), le pones copiar y lo pegas acá... :)
  #5 (permalink)  
Antiguo 28/06/2006, 09:13
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
hola de nuevo.
antetodo gracias por respuesta rapida
ahora ya me funciona correctamente. Posteo aqui mi codigo:
lo primero fue q no me habia fijado q la clase q uso tiene ya una opcion para refrescar un select.
Código HTML:
<?
	require("../../../aut_verifica.inc.php"); 
	$str_magatzem="SELECT id_magatzem,magatzem FROM magatzems ORDER BY magatzem";
	$sql_magatzem=mysql_query($str_magatzem) or die(mysql_error());
?>
<br>
<form  id="miform" method="post" action="consultes/expedicions/resexpedimagatzem.php">
<table border="1">
<tr>
<td>
	<select name="magatzem" class="caixes" onchange="if (this.value>0) myajax.Select('consultes/expedicions/cons_dataexpedi.php?magatzem='+this.value, 'datexp')">
			<option value="0">Escoje un Almacen...</option>
			<?
			while($res_magatzem=mysql_fetch_row($sql_magatzem)){
				echo "<option value=".$res_magatzem[0].">".$res_magatzem[1]."</option>";
			}
			?>
		</select>
</td>
<td>
	<select id="datexp" name="datexp" class="caixes">
			<option value="0">Escoje un Almacen...</option>
	</select>
</td>
<td>
<input type="button" class="boto" name="enviar" value="Consultar"  onClick="javascript:validaconsultaexpedi(this.form)">
</td>
</tr>
</table>
</form> 
apartir de aqui ya me lo ha coajido perfecto. Supongo q perdia el valor porque llamaba a una 'subpagina'... no ser...
la funcion ha kedado asi:
Código PHP:
function validaconsultaexpedi(miform){
    
    var 
magatzem miform.magatzem.value;
    var 
datexp2 document.getElementById('datexp').options[document.getElementById('datexp').selectedIndex].value
    alert
(datexp2);
    if (
magatzem==0){
        
alert("Tienes que escojer un Almacen.");
        return 
false;
    }else if (
datexp2 == ''){
        
alert("Tienes que escojer una fecha. Si no se muestra ninguna es que no hay expediciones para ese almacen.");
        return 
false;
    }else {
        
myajax.Form('miform''main');
    }    

gracias por todo.

Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
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 03:25.