En una tabla de MySql tengo datos de empleados, con campos para nombre, cuil, sueldo, fecha de ingreso etc, los cuales cargo desde un form con textbox. Tambien tengo dos campos, convenio y categoria, los cuales son dependientes y los cargo desde un juego de dos combobox anidados. Depende el convenio seleccionado, obtengo las opciones de la categoria. Tanto los convenios como las categorias estan guardadas en una tabla.
El alta la puedo realizar sin problemas, pero el tema es que el usuario tiene la opcion de editar los datos de cada empleado, para esto uso un formulario identico, pero que en ves de un insert hace un update. Y aca tengo el problema:
Cuando voy al form de editar empleado, no tengo el form en blanco, sino que tomo los datos que le corresponden a ese registro y con eso relleno los textbox, pero no logro conseguir que se seleccionen las opciones de los combos como los tengo en la tabla.
En realidad en el primer combo consigo traer la seleccion que guarde anteriormente, pero en el segundo (el que se rellena de manera dinamica) no. Como puedo hacer?
Les copio parte del codigo:
Form para editar:
Código HTML:
<form action="<?php echo $editFormAction; ?>" method="POST"
name="form1" id="form1"
onsubmit="MM_validateForm('nombre_empl','','R','apellido_empl','','R','diaalta_empl','','NinRange1:31','mesalta_empl','','NinRange1:12','anioalta_empl','','RisNum','sueldo_empl','','RisNum','sueldo_cent_empl','','RisNum');return
document.MM_returnValue">
<table width="100%" border="0" align="center" cellpadding="3"
cellspacing="0">
<tr valign="baseline">
<td colspan="2" align="left" nowrap="nowrap"
class="tablatop">Modificacion de Datos del Empleado
<input name="cuit_prefijo" type="hidden"
id="cuit_prefijo" value="<?php echo $row_Padron['cuit_prefijo']; ?>"
/>
<input name="cuit_dni" type="hidden"
id="cuit_dni" value="<?php echo $row_Padron['cuit_dni']; ?>" />
<input name="cuit_subfijo" type="hidden"
id="cuit_subfijo" value="<?php echo $row_Padron['cuit_subfijo']; ?>"
/>
<input name="id_empresa" type="hidden"
id="id_empresa" value="<?php echo $row_Padron['id_empresa']; ?>" />
<input name="id_empl" type="hidden"
id="id_empl" value="<?php echo $row_Empleados['id_empl']; ?>"
/></td>
</tr>
<tr valign="baseline">
<td width="200" align="right" nowrap="nowrap"
class="tablabody">CUIL:</td>
<td class="tablabody"><input
name="cuil_prefijo" type="text" id="cuil_prefijo" value="<?php echo
$row_Empleados['cuil_prefijo']; ?>" size="2" maxlength="2" />
-
<input name="cuil_dni" type="text" id="cuil_dni" value="<?php echo
$row_Empleados['cuil_dni']; ?>" size="8" maxlength="8" />
-
<input name="cuil_subfijo" type="text"
id="cuil_subfijo" value="<?php echo $row_Empleados['cuil_subfijo']; ?>"
size="1" maxlength="1" />
(Anteriormente <?php echo
$row_Empleados['cuil_prefijo']; ?>-<?php echo $row_Empleados['cuil_dni'];
?>-<?php echo $row_Empleados['cuil_subfijo']; ?>)</td>
</tr>
<tr valign="baseline">
<td width="200" align="right" nowrap="nowrap"
class="tablabody">Nombre:</td>
<td class="tablabody"><input
name="nombre_empl" type="text" id="nombre_empl" value="<?php echo
$row_Empleados['nombre_empl']; ?>" size="50" maxlength="50"
/></td>
</tr>
<tr valign="baseline">
<td width="200" align="right" nowrap="nowrap"
class="tablabody">Apellido:</td>
<td class="tablabody"><input
name="apellido_empl" type="text" id="apellido_empl" value="<?php echo
$row_Empleados['apellido_empl']; ?>" size="50" maxlength="50"
/></td>
</tr>
<tr valign="baseline">
<td width="200" align="right" nowrap="nowrap"
class="tablabody">Fecha de alta:</td>
<td class="tablabody"><input
name="diaalta_empl" type="text" id="diaalta_empl" value="<?php echo
$row_Empleados['diaalta_empl']; ?>" size="2" maxlength="2" />
/
<input name="mesalta_empl" type="text"
id="mesalta_empl" value="<?php echo $row_Empleados['mesalta_empl']; ?>"
size="2" maxlength="2" />
/
<input name="anioalta_empl" type="text"
id="anioalta_empl" value="<?php echo $row_Empleados['anioalta_empl']; ?>"
size="4" maxlength="4" />
Formato dd/mm/aaaa</td>
</tr>
<tr valign="baseline">
<td width="200" align="right" nowrap="nowrap"
class="tablabody">Convenio:</td>
<td class="tablabody"><select
name="convenio_empl" id="convenio_empl" >
<option class="no" value="0"
<?php if (!(strcmp(0, $row_Empleados['convenio_empl']))) {echo
"selected=\"selected\"";} ?>>Seleccionar</option>
<?php
do {
?>
<option class="si"
value="<?php echo $row_Recordset1['convenio']?>"<?php if
(!(strcmp($row_Recordset1['convenio'], $row_Empleados['convenio_empl']))) {echo
"selected=\"selected\"";} ?>><?php echo
$row_Recordset1['convenio']?></option>
<?php
} while ($row_Recordset1 = mysql_fetch_assoc($Recordset1));
$rows = mysql_num_rows($Recordset1);
if($rows > 0) {
mysql_data_seek($Recordset1, 0);
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
}
?>
</select>
</td>
</tr>
<tr valign="baseline">
<td width="200" align="right" nowrap="nowrap"
class="tablabody">Categoría:</td>
<td class="tablabody"><select
name="categoria_empl" id="categoria_empl">
<option class="no"
value="0">Seleccionar</option>
</select>
</td>
</tr>
<tr valign="baseline">
<td width="200" align="right" nowrap="nowrap"
class="tablabody">Remuneración</td>
<td class="tablabody"><input
name="sueldo_empl" type="text" id="sueldo_empl" value="<?php echo
$row_Empleados['sueldo_empl']; ?>" size="8" maxlength="8" />
,
<input name="sueldo_cent_empl"
type="text" id="sueldo_cent_empl" value="<?php echo
$row_Empleados['sueldo_cent_empl']; ?>" size="2" maxlength="2" />
(Básico + Premios + Hs Extras
etc)</td>
</tr>
<tr valign="baseline">
<td width="200" align="right" nowrap="nowrap"
class="tablabody">Estado:</td>
<td class="tablabody"><select
name="activo">
<option value="Activo"
selected="selected" <?php if (!(strcmp("Activo", $row_Empleados['activo'])))
{echo "selected=\"selected\"";} ?>>Activo</option>
<option value="Inactivo" <?php
if (!(strcmp("Inactivo", $row_Empleados['activo']))) {echo
"selected=\"selected\"";} ?>>Inactivo</option>
</select>
</td>
</tr>
<tr valign="baseline">
<td width="200" align="right" nowrap="nowrap"
class="tablabody"> </td>
<td class="tablabody"><input type="submit"
value="Guardar Datos de Empleado"
onclick="valcuit(concatenar(cuil_prefijo.value,cuil_dni.value,cuil_subfijo.value))"/></td>
</tr>
</table>
<input type="hidden" name="MM_update" value="form1" />
</form>
Script para rellenar (sin hacer submit, por que submit lo uso para validar el form con MM_validateForm de DreamWeaver):
Código HTML:
<script>
$(document).ready(function(){
$("#convenio_empl").change(function(){
$.post("../inc/carga_select2.php",{ id:$(this).val() },function(data){$("#categoria_empl").html(data);})
});
})
</script>
Y el script de php que uso para hacer el select del 2do combo:
Código PHP:
<?php require_once('../../Connections/bapro.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$colname_Recordset1 = "-1";
if (isset($_POST['id'])) {
$colname_Recordset1 = $_POST['id'];
}
mysql_select_db($database_bapro, $bapro);
$query_Recordset1 = sprintf("SELECT * FROM cct WHERE convenio = %s", GetSQLValueString($colname_Recordset1, "text"));
$Recordset1 = mysql_query($query_Recordset1, $bapro) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>
<option class="no" value="0">Seleccionar</option>
<?php
do {
?>
<option class="si" value="<?php echo $row_Recordset1['categoria']?>"><?php echo $row_Recordset1['categoria']?></option>
<?php
} while ($row_Recordset1 = mysql_fetch_assoc($Recordset1));
$rows = mysql_num_rows($Recordset1);
if($rows > 0) {
mysql_data_seek($Recordset1, 0);
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
}
mysql_free_result($Recordset1);
?>
Se daran cuenta que me apoyo en DReamWeaver. De ajax, poco y nada, pero tomo en cuenta sugerencias para cambiar la forma de hacer los conbos anidados si me ayudan a implementarlo. De paso aprendo.
Gracias de antemano.