Foros del Web » Programando para Internet » Javascript »

Problemas con campos dinamicos en javascript

Estas en el tema de Problemas con campos dinamicos en javascript en el foro de Javascript en Foros del Web. HOLA GENTE TENGO EL SIGUIENTE CODIGO y LO QUE HACE ES CREAR DINAMICAMENTE CAJAS DE TEXTO (N) EN UN FORMULARIO UTILIZANDO JAVASCRIPT HASTA AHI BIEN ...
  #1 (permalink)  
Antiguo 28/07/2011, 17:54
 
Fecha de Ingreso: julio-2011
Ubicación: CCCCCCC
Mensajes: 3
Antigüedad: 13 años, 4 meses
Puntos: 0
Información Problemas con campos dinamicos en javascript

HOLA GENTE TENGO EL SIGUIENTE CODIGO y LO QUE HACE ES CREAR DINAMICAMENTE CAJAS DE TEXTO (N) EN UN FORMULARIO UTILIZANDO JAVASCRIPT HASTA AHI BIEN EL PROBLEMA ES AL ENVIAR EL FORMULARIO AL ARCHIVO PHP, EL NOMBRE DE LAS CAJAS DINAMICAS son del estilo txtRow2[0]. NO CONSIGO RECOGER LOS DATOS DE LAS CAJAS DINAMICAS PERO SI DE LAS OTRAS. AHORA E INTENATADO HACIENDO PRUEBAS ENVIANDO LAS CAJAS DINAMICAS CON NOMBRE COMO txtrow2 . es decir NO COMO UN ARREGLO SINO COMO VARIABLE Y SUCEDE EL MISMO PROBLEMA NO PASAN DICHAS CAJAS AL ARCHIVO PHP

CODIGO JAVASCRIPT***********************

<script language="javascript">


function addRowToTable()
{

var tbl = document.getElementById('mitabla');
var lastRow = tbl.rows.length;
var items=document.frmdep.txtfilasT.value;

if (Repetidos(items)==false ){




var iteration = lastRow-1;
var row = tbl.insertRow(lastRow);

//alert(items);

var cell0 = row.insertCell(0);

var el0 = document.createElement('img');
el0.src='images/Deletex.png'
el0.name =TextoIng(3);
el0.onclick = function () {borrar(this.name)} // 9
cell0.appendChild(el0)


var cell1 = row.insertCell(1);
var el1 = document.createElement('input');
el1.type = 'text';
el1.value=iteration;
el1.className='stilogrilla';
el1.size=38;
el1.disabled=true;
el1.value=TextoIng(1);
el1.name = 'txtRow1[' + items + ']';
el1.id = 'txtRow1[' + items + ']';
cell1.appendChild(el1);

var cell2 = row.insertCell(2);
var el2 = document.createElement('input');
el2.type = 'text';
el2.className='stilogrilla';
el2.size=38;
el2.disabled=true;
el2.value=TextoIng(2);
el2.name = "txtRow2[" + items + "]";
el2.id = "txtRow2[" + items + "]";
cell2.appendChild(el2);


var cell3 = row.insertCell(3);
var el3 = document.createElement('input');
el3.type = 'text';
el3.className='stilogrilla';
el3.size=5;
el3.disabled=true;
el3.value=TextoIng(3);
el3.name='txtRow3'+'['+ items +']';
el3.id = 'txtRow3'+'['+ items +']';
cell3.appendChild(el3);
document.frmdep.txtfilasT.value=parseInt(document. frmdep.txtfilasT.value)+1;
document.frmdep.txtfilas.value=iteration;
}
}
function TextoIng(sol)
{
var campo_select = document.getElementById('listares');
var indice = campo_select.selectedIndex;
if (sol == 1) {
var texto = campo_select.options[indice].text;
return texto;
} else if(sol==2) {
var texto=document.frmdep.txtcargo.value;
return texto;
}else {
var texto = campo_select.value;
return texto;
}

}

function Repetidos(items)
{
var i=0;
var campo_select = document.getElementById('listares');
var texto = campo_select.value;
var er=0;
//alert (items);


while(i<=items) {

try{
var textotmp =eval(document.getElementById('txtRow3['+i+']').value);

if(textotmp==texto){
alert ("El encargado ya existe en la Lista.")
return true;
}
}
catch(e){
//window.alert("error");
er+1;
}
i=i+1;
}

return false;
}
function borrar(obj) {
var id_obj=obj;
var j=0 ;
var ex=0;
var AcFila=0;
var titems=parseInt(document.frmdep.txtfilasT.value);
var tbl = document.getElementById('mitabla');
var lastRow = tbl.rows.length;
//alert ("va a borrar el ID "+id_obj);
if (lastRow > 3) {
while (j<=titems){
try{
var textotmp =eval(document.getElementById('txtRow3['+j+']').value);
AcFila=AcFila+1
//alert (textotmp);
if(textotmp==id_obj){
//alert("fila a eliminar "+ parseInt(AcFila+1));
break
}
}

catch(e){
ex+1;
}

j=j+1;
}
tbl.deleteRow(AcFila+1);
document.frmdep.txtfilas.value=parseInt(document.f rmdep.txtfilas.value)-1;
}

}

function validateRow(frm)
{
frm.submit();

}
</script>

CODIGO HTML**************************


<body>
<div id="main">
<div id="right">
<div class="special">
<form name="frmdep" method="post" action="procesar_dep.php">

<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="191" height="31">Nombre del encargado.</td>
<td colspan="2" valign="bottom"><select name="listares" id="listares">
<option value="0">Juan</option>
<option value="1">Pablo</option>
<option value="2">Mary</option>
<option value="3">Lady</option>

</select></td>
</tr>
<tr>
<td height="33">Cargo.</td>
<td colspan="2"><input name="txtcargo" type="text" id="txtcargo" size="60" /></td>
</tr>
<tr>
<td height="34"><input name="txtfilasT" type="hidden" id="txtfilasT" value="0" />
<input name="txtfilas" type="hidden" id="txtfilas" value="0" /></td>
<td colspan="2"><input type="button" name="btnlista" id="btnlista" value="Listar" onclick="addRowToTable();" style=" background: #BCCEDA; width:100px;" /></td>
</tr>
<tr>
<td height="14" colspan="3"><hr style="border:1px solid #CCC; "/></td>
</tr>
<tr>
<td height="35" colspan="3">
<table width="100%" border="0" cellspacing="0" cellpadding="0" id="mitabla">
<tr>
<td colspan="4" align="center"><h2>
Lista de encargados</h2></td>
</tr>
<tr>
<td width="7%" >&nbsp;</td>
<td width="42%">Encargado</td>
<td width="42%">Cargo</td>
<td width="9%">ID</td>
</tr>
</table></td>
</tr>
<td height="33" colspan="3">&nbsp;</td>
</tr>
<td>&nbsp;</td>
<td width="272" align="right"><input type="button" name="btnotro" id="btnotro" value="Nuevo" style=" background: #BCCEDA; width:100px;" /></td>
<td width="137" align="right"><input type="button" name="btnsave" id="btnsave" onclick="validateRow(this.form);" value="Guardar" style=" background: #BCCEDA; width:100px;" /></td>
</tr>
</table>
</form>
</div>
</div>
</div>
</body>
  #2 (permalink)  
Antiguo 29/07/2011, 13:57
Avatar de lordglazoon  
Fecha de Ingreso: julio-2011
Mensajes: 54
Antigüedad: 13 años, 5 meses
Puntos: 8
Respuesta: Problemas con campos dinamicos en javascript

no mire tu código, pro lo que buscas se hace:

en el javascript fuera de la función se crea una variable igual a 0 y se va aumentando dentro de la función por cada caja, a las cuales les pones de nombre ='caja_'+cont

así tendrás un nombre distinto para cada caja ej: caja_0,caja_1,caja_2, etc.

luego al enviar el formulario, envía como campo oculto el valor de la variable que te sirvió como contador (cont), puedes insertarla igual como lo hiciste con las cajas.

luego en el php haces un for hasta cont

y encada pasada recuperas los valores de las cajas
  #3 (permalink)  
Antiguo 31/07/2011, 08:34
 
Fecha de Ingreso: julio-2011
Ubicación: CCCCCCC
Mensajes: 3
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Problemas con campos dinamicos en javascript

GRACIAS POR TU RESPUESTA... PERO YA INTENTE ENVIANDO UN CAMPO OCULTO CON UN VALOR DEL CONTADOR,,, PERO SORPRESA AL LEER CON UN CICLO LAS VARIABLES TXTROW1 O TXTROW2 ETC DICE QUE NO ESTAN DEFINIDAS .. YA NO SE QUE HACER ESTOY DESESPERADA,,,
NO ENTIENDO PORQUE RAZON LAS CAJAS CREADAS EN TIEMPO DE DISEÑO SI LAS PASA EL FORMULARIO PERO NO LAS ENVIA LAS CREADAS EN TIEMPO DE EJECUCION ...

HELP ME¡¡¡¡
  #4 (permalink)  
Antiguo 31/07/2011, 14:08
 
Fecha de Ingreso: julio-2011
Ubicación: CCCCCCC
Mensajes: 3
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Problemas con campos dinamicos en javascript

GRACIAS lordglazoon YA ECONTRE EL MOTIVO POR EL CUAL NO SE ENVIABA EL VALUE DE LAS CAJAS CREADAS EN TIEMPO DE EJEUCIÓN... SIMPLEMETE ERA QUE HABIA AGREGADO EL ATRIBUTO DE DISABLED=TRUE A LAS NUEVAS CAJAS QUE PARA MI CASO DEBIA HACERLO.... PERO BNO LE AGREGE EL ATRIBUTO readOnly=TRUE Y LISTO TODO FUNCIONA DE LUJO¡¡¡¡¡

Etiquetas: cajas, dianamicas, post, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:47.