Buenas, estoy haciendo un desarrollo para mi trabajo y "bendita la hora que se me ocurrio" tengo que cargar los cheques que se emiten en una base, hasta ahi todo bien. El tema es que cuando ingreso a la pantalla para cargar los cheques pongo en un form un cheque solamente, y si el usuario quiere cargar mas de uno solo debe hacer click en "agregar cheque" y agrego otra linea de campos en un div debajo del anterior.
He logrado hacer esto con xajax y php, pero si vuelvo a hacer click no me carga un tercer cheque, entonces la idea inicial no me sirve de nada. Alguna idea de como solucionarlo?...
El codigo es el siguiente:
Código:
<?php
//incluímos la clase ajax
require ('xajax/xajax.inc.php');
//instanciamos el objeto de la clase xajax
$xajax = new xajax();
$xajax->setCharEncoding('ISO-8859-1');
$xajax->decodeUTF8InputOn();
$num = 1;
$salida ="";
function proceso_envio($indice){
//creo el xajaxResponse para generar una salida
$respuesta = new xajaxResponse('ISO-8859-1');
//validación
$num = $num + $indice;
$salida .= '<div id="cheque'.$num.'"><table><tr><td height="25"> </td><td align="left" valign="middle"><input name="fecha'.$num.'" type="text" id="campo-'.$num.'" /><img src="calendar.gif" width="14" height="14" type="submit" id="boton-'.$num.'" title="Seleccionar Fecha"/><script type="text/javascript">Calendar.setup({inputField : "campo-'.$num.'", button : "boton-'.$num.'", });</script></td><td align="left" valign="middle"><label><input name="num_cheque'.$num.'" type="text" id="num_cheque'.$num.'" size="20" maxlength="30" value="'.$num.'"/></label></td><td align="left" valign="middle"><label><input name="destino_cheque'.$num.'" type="text" id="destino_cheque'.$num.'" size="40" maxlength="50" /> </label></td><td align="left" valign="middle"><label><input name="importe'.$num.'" type="text" id="importe'.$num.'" size="15" maxlength="10" /></label></td><td> </td></tr></table></div>';
//escribimos en la capa con id="capaformulario" el texto que aparece en $salida
$respuesta->addAssign("agrego_cheque","innerHTML","$salida");
//tenemos que devolver la instanciación del objeto xajaxResponse
return $respuesta;
}
//registramos la función creada anteriormente al objeto xajax
$xajax->registerFunction("proceso_envio");
//El objeto xajax tiene que procesar cualquier petición
$xajax->processRequests();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Agregar cheques</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<?
//En el <head> indicamos al objeto xajax se encargue de generar el javascript necesario
$xajax->printJavascript("xajax/");
?>
</head>
<body>
<div id="capa_titulos">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<tr>
<td height="20" colspan="5" align="right" valign="middle" class="small"><a href="#" onclick="xajax_proceso_envio(1)">«« Agregar cheques al sistema Contable »»</a></td>
<td width="12"> </td>
</tr><form name="emite_cheques" id="emite_cheques" action="contable/procesa_alta_cheque.php" method="post">
<tr>
<td width="10" height="20"> </td>
<td width="195" align="left" valign="middle" class="tabla_iz_ab"> Fecha de Emisión</td>
<td width="154" align="left" valign="middle" class="tabla_iz_ab"> Nº de Cheque</td>
<td width="268" align="left" valign="middle" class="tabla_iz_ab"> Destinatario</td>
<td width="124" align="left" valign="middle" class="tabla_arr_no"> Importe</td>
<td> </td>
</tr>
</table>
</div>
<div id="cheque1">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="25"> </td>
<td align="left" valign="middle"><input name="fecha1" type="text" id="campo-1" tabindex="1"/>
<img src="calendar.gif" width="14" height="14" type="submit" id="boton-1" title="Seleccionar Fecha"/>
<script type="text/javascript">
Calendar.setup({
inputField : "campo-1",
button : "boton-1",
});
</script></td>
<td align="left" valign="middle"><label>
<input name="num_cheque1" type="text" id="num_cheque1" tabindex="2" size="20" maxlength="30" />
</label></td>
<td align="left" valign="middle"><label>
<input name="destino_cheque1" type="text" id="destino_cheque1" tabindex="3" size="40" maxlength="50" />
</label></td>
<td align="left" valign="middle"><label>
<input name="importe1" type="text" id="importe1" tabindex="4" size="15" maxlength="10" />
</label></td>
<td> </td>
</tr>
</table>
</div>
<div id="agrego_cheque">
</div>
<div id="envia_form">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="25"></td>
<td colspan="2" valign="top"><!--DWLayoutEmptyCell--> </td>
<td colspan="2" align="right" valign="middle"><label>
<input type="submit" name="Grabar" id="Grabar" value="Grabar" tabindex="21" />
<input type="reset" name="Limpiar_form" id="Limpiar_form" value="Eliminar datos cargados" tabindex="22" />
</label></td>
<td></td>
</tr>
<tr>
<td height="155"></td>
<td colspan="4" valign="top"><!--DWLayoutEmptyCell--> </td>
<td></td>
</tr>
</form></table>
</div>
</body>
</html>
Gracias de antemano por sus respuestas, saludos.