Código:
En var text existe un código HTML que se utiliza para generar campos nuevos, el primer input es un textBox, y el segundo es una función PHP que devuelve un comboBox (o select para algunos). El código funciona bien sin la función PHP. function crearCampos(){ var div = document.getElementById("campos_dinamicos"); var text ='<td align="center"><input name="ManualUT'+i+'" id= "ManualUT" type="text" disabled size="20" maxlength="20"> <td align="center" valign="top">'+ <?php MostrarSelect("Codigos","","","","","170","","Codigos'+i+'"); ?> +'</td>'; div.innerHTML = text;
El código de la función PHP es el siguiente:
Código PHP:
<?php
function MostrarSelect($pEntidad,$pSelectedID=NULL,$pDisabled=NULL,$pTipoFamilia=NULL,$pAncho="145",$pEvento=NULL,$pNombre=NULL){
// Asignamos a una variable la matriz de la entidad a mostrar
$Matriz = ObtenerMatriz($pEntidad,$pTipoFamilia);
// Si no existen registros en la base de datos de esta entidad, se manda el mensaje correspondiente
if (!$Matriz){
echo "<font color=\"red\"><strong>No existen registros de $pEntidad en la Base de Datos.</strong></font>";
return;
}
// Mostramos el select con las opciones con los nombres de la entidad y los valores de sus identificadores en la base de datos
?>
<select name="<?php if($pNombre!=NULL) echo $pNombre; else echo $pEntidad;?>" id="<?php echo $pEntidad;?>" <?php echo $pDisabled;?> style="width:<?php echo $pAncho?>px <?php echo "$pEvento"?> ">
<option <?php if (!$pSelectedID) echo "selected ";?>value="" disabled>Seleccionar...</option>
<?php
for ($i=0 ; $i<count($Matriz) ; $i++){
// Si $pSelectedID es distinto de NULL debemos aplicar un selected a la opción correcta
if ($pSelectedID)
if ($Matriz[$i][0]==$pSelectedID)
$Selected = " selected";
else
$Selected = NULL;
echo "<option value=\"".$Matriz[$i][0]."\"".$Selected.">".$Matriz[$i][1]."</option>\n\t\t\t";
}
?>
</select>
<?php
}
?>
Código:
Cuando quito la función PHP de JS funciona bien, y he creado otras funciones básicas que devuelven string para probar el código y funcionan bien <input name="Agregar" type="button" onClick="crearCampos()" id="Agregar" value="Agregar"> <div id="campos_dinamicos"> </div>