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!