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!