Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/10/2009, 15:27
lily55
 
Fecha de Ingreso: octubre-2009
Mensajes: 13
Antigüedad: 14 años, 7 meses
Puntos: 0
Ayuda al cargar la pag.

Hola no estoy segura si es el foro adecuado, espero puedan ayudarme!

Tengo un formulario con un select dependiente, es decir depende de la 1° opc. para desplegar el contenido eso ya lo hace.

El problema es cuando voy a modificar al usuario, como le hago para que me siga un select dependiente y me muestre la opción que había dado inicialmente; medio enredoso???



Sale, muchachos si no me explique bien me avisan, espero sus respuestas!
les dejo el codigo:
Código:
$location_select   = new XoopsFormSelect(Zona, "user_from", $location_value);
$locationlist    =  XoopsLists::getUserZonaList();

if ( count($locationlist) > 0 ) {
	$location_select->addOptionArray($locationlist);
	 
	} else {
		$location_select->addOption(0,"Zona");
	}
$location_select->setExtra("onchange='setOptions(document.userinfo.user_from.options[document.userinfo.user_from.options.selectedIndex].value)'");

$occupation_text = new XoopsFormText(_AM_OCCUPATION, "user_occ", 30, 100, $occ_value);
//$interest_text   = new XoopsFormText(_AM_INTEREST, "user_intrest", 30, 255, $interest_value);
$interest_select   = new XoopsFormSelect(Area, "user_intrest", $interest_value);
 
echo "\n<script type=\"text/javascript\">\n";
echo "function setOptions(chosen)\n";
echo"{\n";
	echo "var selbox = document.userinfo.user_intrest;\n";
	echo "selbox.options.length = 0;\n";
	//echo "alert(chosen);";
	echo "if (chosen == '0'){\n";
		echo "selbox.options[selbox.options.length] = new Option('Seleccione primero una ZONA','-1');\n";
	echo "}\n";

	foreach($locationlist as $locationValue => $locationKey)
	{
		echo "if (chosen == '".$locationValue; echo "'){\n";
			$interestlist = XoopsLists::getUserAreaList($locationlist[$locationValue]);
			if ( count($interestlist) > 0 ) {
				foreach($interestlist as $interestKey => $interestValue)
				{
					echo "selbox.options[selbox.options.length] = new Option('" .$interestValue; echo "','" .$interestKey; echo "');\n";	
				
				}
			}
			else
			{
				echo "selbox.options[selbox.options.length] = new Option('VACIO','-2');\n";
			} 
		echo "}";    
	}
echo"}\n";

   echo "window.onload = function(){\n";  
		echo "setOptions(document.userinfo.user_from.options[document.userinfo.user_from.options.selectedIndex].value)\n";		
   echo "}";
 echo "</script>\n";

las funciones


function &getUserZonaList() {
global $myts, $db;

$sql    = "SELECT IdZona, DescripcionZona  FROM t_zonas";
$ret    = array();
$retID = array();
$result = $db->query($sql);

while ( $myrow = $db->fetch_array($result) ) {
	$ret[$myrow['IdZona']] = $myts->makeTboxData4Show($myrow['DescripcionZona']);
	
}

return $ret;


}


function &getUserAreaList($location_value) {
global $myts, $db;

$sql    = "SELECT IdArea, Descripcion  FROM t_areas a, t_zonas z WHERE a.IdZona=z.IdZona AND z.DescripcionZona LIKE '%".$location_value."%'";
$ret    = array();
$result = $db->query($sql);

while ( $myrow = $db->fetch_array($result) ) {
	$ret[$myrow['IdArea']] = $myts->makeTboxData4Show($myrow['Descripcion']);
}

return $ret;
}


Saludos y gracias!