Combo

saiory
21 de Febrero del 2005
Hola!
Cómo puedo hacer para que al cambiar el valor de un combo se me actualice una variable (esta variable guarda el valor del combo).

Tengo un formulario dónde me aparecen todas las noticias que he ido introduciendo en la B.D.
Me muestra el título, descripción, FechaCreación e idioma. El campo Idioma lo muestro en un combo dónde al hacer clic me muestra en todos los idiomas que he introducido esa noticia. Bien, pues por defecto imagínate que me aparece español, justo al lado del combo idioma tengo un botón "mostrar noticia" que me muestra la noticia en el idioma que tengo seleccionado en el combo.

Mi problema viene cuando quiero cambiar el valor del combo y elijo inglés por ejemplo, y le doi a "mostrar noticia", no me coge el nuevo valor.

He de decir que guardo el valor del combo en una variable $CodIdioma.

Y quiero que esta variable me la actualiza al cambiar el combo y no mediante un botón submit.

Aquí va el código:

while($row=mysql_fetch_array($_pagi_result))
{
$nbrow++;

$CodNoticia=$row["CodNoticia"];
$TituloNot=$row["TituloNot"];
$Usuario = $row["Usuario"];
$FechaModif =$row["FechaModif"];
$Categoria =$row["Categoria"];

print "<tr bgcolor='#FBF3E4'> ";
print "<td><div align="center"><font color="#000000"><font face="Verdana"><input type="checkbox" name="delete[]" value="$CodNoticia"></font></font></div></td>";
print "<td> <div align="left"><font color="#000000"><font size="1"><font face="Verdana">$TituloNot</font></font></div></td>";
print "<td> <div align="center"><font color="#000000"><font size="1"><font face="Verdana">$Usuario</font></font></div></td>";
print "<td> <div align="center"><font color="#000000"><font size="1"><font face="Verdana">$FechaModif</font></font></div></td>";
print "<td> <div align="center"><font color="#000000"><font size="1"><font face="Verdana">$Categoria</font></font></div></td>";
?>
<td width="5%"><div align="center">
<?php

//Este es el código donde aparencen los idiomas en los que está introducida la noticia(los muestra en un combo)
$sqlCombo="SELECT * FROM Idiomas INNER JOIN Noticias ON Idiomas.CodIdioma = Noticias.CodIdioma WHERE (((Noticias.CodNoticia)='$CodNoticia'))";
$res = mysql_query($sqlCombo,$cont);
$num = mysql_num_rows($res);
?>

<select name="Idioma" style='width:100'>
<?php
for($i=0;$i<$num;$i++) {
$CodIdioma[$i] = mysql_result($res,$i,0);
$Idioma[$i] = mysql_result($res,$i,1);

$sel = "";
//Miramos si coinciden los códigos
if($CodIdioma[$i] == $CodIdioma[$i]) $sel = "selected";

echo "<option ".$sel." value=$CodIdioma[$i]>$Idioma[$i]</option>";
$CodIdioma=$CodIdioma[$i];
}
?>
</select>
</div></td>

//En este link, envío el CodIdioma elegido en el combo anterior. Si elijo español=1, inglés=2 (Esto no lo consigo hacer)
<td width="5%"><div align="center"><a href="MostrarNoticia.php?id=<?php print $CodNoticia;?>&idIdioma=<?php print $CodIdioma;?>"><img src="../../ImgAdmin/Mostrar.jpg" width="30" height="25" border="1"></a></div></td>

Muchas gracias.

Paco
21 de Febrero del 2005
if($CodIdioma[$i] == $CodIdioma[$i]) $sel = "selected";
Aqui está tu error ...
Esto siempre se evalua a cierto !!! -> $CodIdioma[$i] == $CodIdioma[$i]
¿que sentido tiene comparar el mismo valor de la misma tabla????

enga un saludo.