Foros del Web » Creando para Internet » HTML »

2 forms en un mismo formulario

Estas en el tema de 2 forms en un mismo formulario en el foro de HTML en Foros del Web. Buenas, tengo una duda, en un mismo formulario tengo 2 <form>, uno para un formulario normal y otro para un calendario. Los deben d ir ...
  #1 (permalink)  
Antiguo 23/04/2005, 04:15
 
Fecha de Ingreso: diciembre-2003
Ubicación: Málaga
Mensajes: 495
Antigüedad: 20 años, 4 meses
Puntos: 0
2 forms en un mismo formulario

Buenas, tengo una duda, en un mismo formulario tengo 2 <form>, uno para un formulario normal y otro para un calendario. Los deben d ir a la misma pagina, pero mandando distinta informacion.

Este es uno: <form method="post" action="lugar.php"> y el otro
<FORM name="demoform" onsubmit="alert('form submit');">

Pero el k manda toda la informacion es el primero q quiero q me mande tantos del primer form como del segundo, gracias
  #2 (permalink)  
Antiguo 23/04/2005, 08:56
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola vecino:

No se pueden anidar formularios, pero si puedes tener varios en la misma página, con sus propios campos (incluso pueden tener el mismo nombre)

... Si los campos son distintos, tienes que usar 2 formularios, y si algún campo sebe compartirse, te recomiendo que uses el evento onsubmit para actualizar los campos antes del envío...

De todos modos, no entendí muy bien la pregunta...

Si crees que no te he contestado bien, tal vez sea mejor que plantees mejor tu duda.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 23/04/2005, 09:26
 
Fecha de Ingreso: diciembre-2003
Ubicación: Málaga
Mensajes: 495
Antigüedad: 20 años, 4 meses
Puntos: 0
haber es k mi prblema es el siguiente, encontre un calendario por aki, q tiene un form propio, y claro los datos q recoge me gustaria pasarlo con el form q tengo general del formulario. Total q tengo esto:

Este del calendario.
<FORM name="demoform" action="index.php" onsubmit="alert('form submit');">
hago lo k sea...
</form>

y despues tengo el del formulario, q tambien hago una seria d cosas.

<form method="post" action="lista.php">

Como puedo eso mismo q he insertado en el primer form. ¿¿pasarlo al otro form??
  #4 (permalink)  
Antiguo 23/04/2005, 09:33
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Tienes que ver a que campo del formulario del calendario se pasan los datos... aunque me parece que debes estar omitiendo algo, ya que ese tipo de páginas con calendario suelen abrirse en ventanas emergentes (popups)... porque si tienen que recargarse las páginas se perderían los datos del formulario principal...

Tienes algún enlace para verlo, o puedes poner el código de los formularios... ¿?

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 24/04/2005, 04:46
 
Fecha de Ingreso: diciembre-2003
Ubicación: Málaga
Mensajes: 495
Antigüedad: 20 años, 4 meses
Puntos: 0
Este es el formulario del calendario, no se abre en un popup sino q en la misma pagina se despliega hacia abajo:

<FORM name="demoform" action="index.php" onsubmit="alert('form submit');">
<div style="position:absolute;top:170px;left:158"><font face="tahoma" size=1 color=#9c9ece>Desde <input name="dc1" size="12" onsubmit="alert('form submit');" onfocus="this.blur()" readonly><a href="javascript:void(0)" onclick="if(self.gfPop)gfPop.fStartPop(document.de moform.dc1,document.demoform.dc2);return false;" HIDEFOCUS><img align="absmiddle" src="DateRange/calbtn.gif" width="34" height="22" border="0" alt=""></a></font></div>
<div style="position:absolute;top:200px;left:157"><font face="tahoma" size=1 color=#9c9ece>Hasta: <input name="dc2" size="12" onsubmit="alert('form submit');" onfocus="this.blur()" readonly><a href="javascript:void(0)" onclick="if(self.gfPop)gfPop.fEndPop(document.demo form.dc1,document.demoform.dc2);return false;" HIDEFOCUS><img align="absmiddle" src="DateRange/calbtn.gif" width="34" height="22" border="0" alt=""></a></fotn></div>
</form>

Despues el otro lo he puesto a continuacion, pongo el siguiente form:

<form method="post" action="lista.php">
...
...
...
todo lo k viene y lo cierro.
Lo k pasa es q quiero coger lo k recoge el primer form, para despues meterlo en una variable de php, para mandarlo en el segundo form a lista.php, parece algo complicado :S, pero no se como recoger lo k devuelve una vez q se ha ejecutado el calendario y esta en los 2 input.
  #6 (permalink)  
Antiguo 24/04/2005, 11:26
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

En el formulario que tienes no hay ninguna acción submit, pero parece que se actualizan 2 campos...

Habría que ver lo que hace el objeto gfpop, me parece que actualiza 2 de las variables del form...

Si es muy complicado el código, pero ves que se actualiza bien el campo, puedes usar el evento onsubmit del segundo formulario para actualizar sus campos con los datos del primero:

<form method="post" action="lugar.php" onsubmit="dc1.value = document.forms.demoform.dc1.value; dc2.value = document.forms.demoform.dc2.value">

<input type="hidden" value="" name="dc1" />
<input type="hidden" value="" name="dc2" />
...
<input type="submit" />
...
</form>

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 24/04/2005, 15:53
 
Fecha de Ingreso: diciembre-2003
Ubicación: Málaga
Mensajes: 495
Antigüedad: 20 años, 4 meses
Puntos: 0
buenas, gracias ante todo x la paciencia q tas teniendo jeje, weno probe d la forma q me dijistes pero nada, no tengo ni idea d lo k hace gfpop :s, de todas formas he puesto esto:


<FORM name="demoform" action="index.php" onsubmit="alert('form submit');">
<div style="position:absolute;top:170px;left:158"><font face="tahoma" size=1 color=#9c9ece>Desde <input name="dc1" size="12" onsubmit="alert('form submit');" onfocus="this.blur()" readonly><a href="javascript:void(0)" onclick="if(self.gfPop)gfPop.fStartPop(document.de moform.dc1,document.demoform.dc2);return false;" HIDEFOCUS><img align="absmiddle" src="DateRange/calbtn.gif" width="34" height="22" border="0" alt=""></a></font></div>
<div style="position:absolute;top:200px;left:157"><font face="tahoma" size=1 color=#9c9ece>Hasta: <input name="dc2" size="12" onsubmit="alert('form submit');" onfocus="this.blur()" readonly><a href="javascript:void(0)" onclick="if(self.gfPop)gfPop.fEndPop(document.demo form.dc1,document.demoform.dc2);return false;" HIDEFOCUS><img align="absmiddle" src="DateRange/calbtn.gif" width="34" height="22" border="0" alt=""></a></fotn></div>

</form>
<?
$a=$_POST[dc1];
$b=$_POST[dc2];
echo $a;
echo $b;
?>
le puesto esto y me manda a paseo :s. No se k hacerle ya me tiene loko :S.
  #8 (permalink)  
Antiguo 24/04/2005, 17:07
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Si dices que el formulario se despliega debe haber una capa oculta, pero eso no importa tanto...

Creo que la forma de usar php, en este caso es incorrecta, ya que si obtienes datos con javascript, solo los podría leer php recargando la página, y el formulario no tiene ningún método...

Otra cosa que tiene es que no está bien planteado porque el evento onsubmit solo vale en la etiqueta form, y su uso en una etiqueta input no tiene sentido... los inputs no tienen el atributo type...

¿Por qué no pones el código que has usado?... aunque supongo que lo más importante es conocer el funcionamiento de gfPop

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 25/04/2005, 02:45
 
Fecha de Ingreso: diciembre-2003
Ubicación: Málaga
Mensajes: 495
Antigüedad: 20 años, 4 meses
Puntos: 0
Este es el largo codigo dnd viene eso :s:

var gd=new Date(), gToday=[gd.getFullYear(),gd.getMonth()+1,gd.getDate()];
var ua=navigator.userAgent.toLowerCase();
var KO=ua.match(/konqueror\/(\d+)/),KO3=KO&&KO[1]==3,SA=ua.match(/safari\/(\d+)/),SA1=SA&&SA[1]<86; KO=!!KO; SA=!!SA;
var MAC=/mac/.test(ua),OP=!!self.opera,WEBTV=/webtv/.test(ua),IE=/msie/.test(ua)&&!OP&&!WEBTV&&!SA&&!KO,GK=/gecko/.test(ua),OP8=/opera 8/.test(ua)&&OP;
var NN4=IE4=NS6=false,IE5=IE&&![].push&&!IE4;
var gfSelf=fGetById(parent.document,self.name);
var gTheme=self.name.split(":");
var gCurMonth=eval(gTheme[0]); gCurMonth=fCalibrate(gCurMonth[0],gCurMonth[1]);
var gContainer=parent,gDays=[31,31,28,31,30,31,30,31,31,30,31,30,31];
var fOnResize,fRepaint,fHoliday,fOnChange,fAfterSelect ed,fOnDrag,gcOtherDayBG,fOnWeekClick,fIsSelected,f ParseInput,fFormatInput,fOnDoWClick,fOnload;
var __agenda=[], popkey=["Lite"], flatkey=["Lite"], __stub=[];
var MILLIDAY=86400000, giInitDelay=200, _lineThru=true, _noBound=false, _mcafee=false, _animPop=NN4||IE&&!IE4&&!MAC, _animInt=20;
if (![].push) Array.prototype.push=function () {
for (var i=0; i<arguments.length; i++)
this[this.length]=arguments[i];
return this.length;
}

function varDate() {
alert("Calendario.");
}

function fCalibrate(y,m) {
if (m<1) { y--; m+=12; }
else if (m>12) { y++; m-=12; }
return [y,m];
}

function fGetById(doc, id) {
return doc.getElementById(id);
}

function fLoadScript(url) {
if (!(IE4||IE&&MAC)) fGetById(document, "dynaScript").src=url;
}

function fFilterNull(str) {
return str==null||str=="null"?null:str;
}

function fAddEvent(y,m,d,message,action,bgcolor,fgcolor,bgi mg,boxit,html,etc) {
var ag=gbShareAgenda?eval(gsAgShared):__agenda;
ag[y+"-"+m+"-"+d]=[message,fFilterNull(action),fFilterNull(bgcolor),f FilterNull(fgcolor),fFilterNull(bgimg),fFilterNull (boxit),fFilterNull(html),etc];
}

function fGetEvent(y,m,d) {
var ag=gbShareAgenda?eval(gsAgShared):__agenda, id=y+"-"+m+"-"+d;
return ag[id]?ag[id].slice(0):null;
}

function fRemoveEvent(y,m,d) {
var ag=gbShareAgenda?eval(gsAgShared):__agenda;
ag[y+"-"+m+"-"+d]=null;
}

function fWeekOffset(dow) {
return dow<=3?1:0;
}

function fGetDays(y) {
gDays[2]=y%4==0&&y%100!=0||y%400==0?29:28;
return gDays;
}

document.write("<scr"+"ipt type='text/javascript' src='"+gTheme[1]+".js'></scr"+"ipt>");
document.write("<scr"+"ipt type='text/javascript' src='"+(gTheme[4]?gTheme[4]:"plugins.js")+"'></scr"+"ipt>");
</script>
<script type='text/javascript'>
with (document) {
write("<lin"+"k rel='stylesheet' type='text/css' href='"+gTheme[1]+".css'>");
}
</script>
</head>
<body leftmargin=0 topmargin=0 marginwidth=0 marginheight=0 hspace=0 vspace=0 onload="fInitRange();if(fOnload)fOnload()" onselectstart="return false" ondraggesture="return false" ondragstart="return false" oncontextmenu="return false" onmouseup="top.defaultStatus='Listo';fDragIt(0,0,0 ,2,event);return true;">
<script type='text/javascript'>
var __gdos=gdSelect.slice(0);
gCurMonth=fCalibrate(gCurMonth[0],gCurMonth[1]);
gdSelect=gdSelect.slice(0); gBegin=gBegin.slice(0); gEnd=gEnd.slice(0);
if (gCurMonth[0]>gEnd[0]||gCurMonth[0]==gEnd[0]&&gCurMonth[1]>gEnd[1]) gCurMonth=gEnd.slice(0);
if (gCurMonth[0]<gBegin[0]||gCurMonth[0]==gBegin[0]&&gCurMonth[1]<gBegin[1]) gCurMonth=gBegin.slice(0);
if (gsSplit=="") {giMonthMode=0; gbPadZero=true;}
var gdBegin,gdEnd,gcbMon,gcbYear,gdCtrl,gcTemp;
var giSat=(6-giFirstDOW)%7,giSun=(7-giFirstDOW)%7,gRange=[],__cal=[];
gWeekDay=gWeekDay.slice(giFirstDOW).concat(gWeekDa y.slice(0,giFirstDOW));
for (var i=0;i<6;i++) { __cal[i]=[]; for (var j=0;j<7;j++) __cal[i][j]=[]; }

if (!fIsSelected)
fIsSelected=function(y,m,d) {
return gdSelect[2]==d&&gdSelect[1]==m&&gdSelect[0]==y;
}
if (!fParseInput)
fParseInput=function(str) {
return fParseDate(str);
}
if (!fFormatInput)
fFormatInput=function(y,m,d) {
return fFormatDate(y,m,d);
}

if (fOnDrag&&!(IE&&MAC||OP)) {
var __om=IE4||IE5?gContainer.document.onmouseover:gCon tainer.document.onmouseup;
if (IE4||IE5) gContainer.document.onmouseover=fOm;
else gContainer.document.onmouseup=fOm;
}
function fOm(e){
if(!e)e=gContainer.event;var t=e.target?e.target:e.srcElement;
if(t.name!=self.name)__lastDrag=null;if(__om)__om( e)
}
var __lastDrag=null;
function fDragIt(y,m,d,aStat,e) {
if (!fOnDrag||!(__lastDrag&&aStat>0||aStat==0)) return false;
var dt=[y,m,d];
if (aStat==1&&__lastDrag+''==dt+'') return false;
__lastDrag=aStat==2||IE&&MAC||OP?null:dt;
return fOnDrag(dt[0],dt[1],dt[2],aStat,e);
}
function fRepaint() {
fSetCal(gCurMonth[0],gCurMonth[1],0,false,null);
}

function fUpdSelect(y,m,d,bDoNotReformat) {
gdSelect[0]=y; gdSelect[1]=m; gdSelect[2]=d;
if (!bDoNotReformat) gdCtrl.value=d==0?"":fFormatInput(y,m,d);
}
function fPopCalendar(dateCtrl,range,posLayerId,posCtrl,pos Offset) {
var dc=dateCtrl;
var pc=posCtrl?posCtrl:dc;
if (gdCtrl!=dc) {gdCtrl=dc; fHideCal();}
else if (fIsShown()) {fHideCal(); return;}
var s=fParseInput(gdCtrl.value);
var b=false;
if (s==null)
if (__gdos[2]==0) {
b=true; s=eval(gTheme[0]); s=[s[0],s[1],0];
} else s=__gdos;
fUpdSelect(s[0],s[1],s[2],b);
fInitRange(range);
if (gRange[2]&&fIsOutRange(s[0],s[1])) {
fUpdSelect(0,0,0);
s=gRange[2];
}
if (!fSetCal(s[0],s[1],0,true,null)) {
fUpdSelect(0,0,0);
return;
}
var p,oh,isFixed=posOffset?posOffset[2]:gbFixedPos,isUp;
if (isFixed) {
p=posOffset?posOffset:gPosOffset;
oh=-1;
} else {
p=fGetXY(pc,posOffset?posOffset:gPosOffset);
if (posLayerId) {
var lyr=fGetById(parent.document,posLayerId);
if (lyr&&lyr.tagName.toUpperCase()=="IFRAME") {
var pl=fGetXY(lyr);
var p2=fGetWinSize(parent.frames[posLayerId]).slice(2);
p[0]+=pl[0]-p2[0];
p[1]+=pl[1]-p2[1];
}
}
var oh=pc.offsetHeight,ptb=fGetById(document,"outerTab le"),h=ptb.offsetHeight,w=ptb.offsetWidth;
h=(h?h:gfSelf.height)+oh;
if (gbAutoPos) {
var ws=fGetWinSize(parent);
var tmp=ws[0]+ws[2]-(w?w:gfSelf.width);
p[0]=p[0]<ws[2]?ws[2]+2:p[0]>tmp?tmp:p[0];
tmp=ws[1]+ws[3]-h;
isUp=p[1]>tmp&&(!gbPopDown||p[1]-ws[3]+oh>=h);
} else isUp=!gbPopDown;
if (isUp) p[1]-=oh>0?h+2:h+25;
}
fShowCal(p[0],p[1]+oh+1,isUp);
}

function fGetWinSize(w) {
if (w.innerWidth)
return [w.innerWidth-16,w.innerHeight,w.pageXOffset,w.pageYOffset];
else if (w.document.compatMode=='CSS1Compat')
with (w.document.documentElement) return [clientWidth,clientHeight,scrollLeft,scrollTop];
else
with (w.document.body) return [clientWidth,clientHeight,scrollLeft,scrollTop];
}

function fShowCal(xx,yy,isUp) {
with (gfSelf.style) {
if (_animPop) clip="rect(0px auto 0px auto)";
left=xx+"px"; top=yy+"px";
}
if (_animPop) {
__strips=0;
__stub[2]=setInterval("fAnimPop("+yy+","+fGetById(document, "outerTable").offsetHeight+","+isUp+")",_animI nt);
}
}

function fAnimPop(t,h,u) {
h=h?h:gfSelf.height; __strips+=20;
with (gfSelf.style)
if (__strips<=h){
var d=h-__strips;
clip="rect("+(u?"auto":d+"px")+" auto "+(u?h-d+"px":"auto")+" auto)";
top=(u?t+d:t-d)+"px";
}
else {
clearInterval(__stub[2]);
clip="rect(auto auto auto auto)";
top=t+"px";
}
}

function fHideCal() {
gfSelf.style.top="-500px";
__lastDrag=null;
if (__stub[2]) clearInterval(__stub[2]);
}
function fIsShown() {
return gfSelf.offsetTop>-100;
}
function fGetXY(a,offset) {
var p=offset?offset.slice(0):[0,0],tn;
while(a) {
tn=a.tagName.toUpperCase();
p[0]+=a.offsetLeft-(!KO3&&tn=="DIV"&&a.scrollLeft?a.scrollLeft:0);
p[1]+=a.offsetTop-(!KO3&&tn=="DIV"&&a.scrollTop?a.scrollTop:0);
if (tn=="BODY") break;
a=a.offsetParent;
}
return p;
}
function fInitRange(r) {
gRange=r?r:[];
var rb=gRange[0]?r[0]:gBegin;
gdBegin=new Date(rb[0],rb[1]-1,rb[2]);
gRange[0]=rb;
var re=gRange[1]?r[1]:gEnd;
gdEnd=new Date(re[0],re[1]-1,re[2]);
gRange[1]=re;

if (gcbYear) {
for(var i=0;i+rb[0]<=re[0];i++) gcbYear.options[i]=new Option(i+rb[0],i+rb[0]);
for(var j=gcbYear.options.length-1;j>=i;j--) gcbYear.options[j]=null;
}
}
  #10 (permalink)  
Antiguo 25/04/2005, 02:46
 
Fecha de Ingreso: diciembre-2003
Ubicación: Málaga
Mensajes: 495
Antigüedad: 20 años, 4 meses
Puntos: 0
function fParseDate(ds) {
var i,r=null,pd=[];
if (!ds) return r;
if (gsSplit.length>0) {
pd=ds.split(gsSplit);
} else {
var yl=gbShortYear?2:4;
if (giDatePos==2) { pd[0]=ds.substring(0,yl);pd[1]=ds.substring(yl,yl+2);pd[2]=ds.substring(yl+2,yl+4); }
else { pd[0]=ds.substring(0,2);pd[1]=ds.substring(2,4);pd[2]=ds.substring(4,4+yl); }
}
if (pd.length==3) {
var m=pd[giDatePos==1?0:1];
for (i=0; (i<12)&&(gMonths[i].substring(0,3).toLowerCase()!=m.substring(0,3).to LowerCase())&&(i+1!=m); i++);
if (i<12) {
var y=parseInt(pd[giDatePos==2?0:2].substring(0,4),10);
var pf=Math.floor(gEnd[0]/100)*100;
r=[y<100?y>gEnd[0]%100?pf-100+y:pf+y:y,i+1,parseInt(pd[giDatePos],10)];
} else return null;
} else return null;
var td=new Date(r[0],r[1]-1,r[2]);
if (isNaN(td)||td.getMonth()!=r[1]-1) return null;
return r;
}
function fFormatDate(y,m,d){
var M=giMonthMode==0?gbPadZero&&m<10?"0"+m:m:giMonthMo de==1?gMonths[m-1]:gMonths[m-1].substring(0,giMonthMode);
var D=gbPadZero&&d<10?"0"+d:d;
var sy=y%100;
var Y=gbShortYear?sy<10?"0"+sy:sy:y;
switch (giDatePos) {
case 0: return D+gsSplit+M+gsSplit+Y;
case 1: return M+gsSplit+D+gsSplit+Y;
case 2: return Y+gsSplit+M+gsSplit+D;
}
}

function fGetAgenda(y,m,d,taint) {
var s=fCalibrate(y,m),cm=gCurMonth;
var def=["",gsAction,gcCellBG,null,guCellBGImg,false,gsCell HTML];
if (taint) if ((giShowOther&4)&&(s[0]<cm[0]||s[0]==cm[0]&&s[1]<cm[1])||(giShowOther&8)&&(s[0]>cm[0]||s[0]==cm[0]&&s[1]>cm[1]))
return null;
var ag=fHoliday?fHoliday(s[0],s[1],d):fGetEvent(y,m,d);
if (ag==null) ag=def;
else {
for (var i=0;i<7;i++) {
if (gAgendaMask[i]!=-1) ag[i]=gAgendaMask[i];
if (ag[i]==null&&i!=1) ag[i]=def[i];
}
if (taint&&s[1]!=cm[1]&&!(giShowOther&1)) {
def[0]=ag[0]; def[1]=ag[1]; ag=null; ag=def;
}
}
if (taint&&s[1]!=cm[1]) {
if (gcOtherDayBG&&ag[2]==gcCellBG) ag[2]=gcOtherDayBG;
ag[3]=gcOtherDay;
}
if (!fValidRange(s[0],s[1],d)) {
ag[0]=gsOutOfRange; ag[1]=null;
if (guOutOfRange) ag[4]=guOutOfRange;
}
return ag;
}

function fGetDOW(y,m,d) {
return (7+(new Date(y,m-1,d).getDay())-giFirstDOW)%7;
}

function fGetWeekNo(y,m,d) {
var dow=fGetDOW(y,1,1);
return Math.ceil(((Date.UTC(y,m-1,d)-Date.UTC(y,0,1))/MILLIDAY+dow-6)/7)+fWeekOffset(dow);
}

function fW2Date(y,w,wd) { // w > 0, wd > 0
var dow=fGetDOW(y,1,1);
if (dow<=3) w--;
var date=new Date(new Date(y,0,1)-0+(w*7+wd-dow-1)*MILLIDAY);
return [date.getFullYear(),date.getMonth()+1,date.getDate( )];
}

function fDate2W(y,m,d) {
var w=fGetWeekNo(y,m,d), wd=fGetDOW(y,m,d)+1;
if (w==0) { y--; w=fGetWeekNo(y,12,31); }
else if (w>52) {
var w1=fGetWeekNo(y+1,1,1);
if (w1>0) { y++; w=w1; }
}
return [y,w,wd];
}

function fGetDateByDOW(y,m,q,dow) { // q: 1-5; dow: 0-6
var dom=new Date(y,m-1,1).getDay();
var d=7*q-6+dow-dom;
if (dom>dow) d+=7;
if (d>fGetDays(y)[m]) d-=7;
return d; // 1-31
}

function fValidRange(y,m,d) {
for (var i=3; i<gRange.length; i++)
if (gRange[i][2]==d&&gRange[i][1]==m&&gRange[i][0]==y)
return false;
var dt=new Date(y,m-1,d);
return (dt>=gdBegin)&&(dt<=gdEnd);
}

function fBuildCal(y,m) {
var days=fGetDays(y),iDay1=fGetDOW(y,m,1);
var iLast=days[m-1]-iDay1+1,iDate=1,iNext=1;
for (var d=0;d<7;d++) {
__cal[0][d][0]=d<iDay1?m-1:m;
__cal[0][d][1]=d<iDay1?iLast+d:iDate++;
}
for (var w=1;w<6;w++)
for (var d=0;d<7;d++) {
__cal[w][d][0]=iDate<=days[m]?m:m+1;
__cal[w][d][1]=iDate<=days[m]?iDate++:iNext++;
}
}

function fIsOutRange(y,m) {
return (y>gRange[1][0]||y<gRange[0][0]||y==gRange[0][0]&&m<gRange[0][1]||y==gRange[1][0]&&m>gRange[1][1]);
}
function fBfRange(y,m) {
return y<gRange[0][0]||y==gRange[0][0]&&m<=gRange[0][1];
}
function fAfRange(y,m) {
return y>gRange[1][0]||y==gRange[1][0]&&m>=gRange[1][1];
}
function fToggleNavs(y,m) {
var n=fGetById(document,"navPrev"); if(n)n.style.visibility=fBfRange(y,m)?"hidden":"vi sible";
n=fGetById(document,"navNext"); if(n)n.style.visibility=fAfRange(y,m)?"hidden":"vi sible";
}

function fCheckRange(y,m) {
if (!_noBound&&fIsOutRange(y,m)) {
stopShowMon();
if (gsOutOfRange!="") alert(gsOutOfRange);
return false;
}
return true;
}

function fSetCal(y,m,d,bTriggerOnChg,e) {
var t=fCalibrate(parseInt(y,10),parseInt(m,10));
y=t[0]; m=t[1];
if (!fCheckRange(y,m)||bTriggerOnChg&&fOnChange&&fOnC hange(y,m,d,e)) {
if (gcbMon) gcbMon.options[gCurMonth[1]-1].selected=true;
if (gcbYear) gcbYear.options[gCurMonth[0]-gcbYear.options[0].value].selected=true;
return false;
}
if (d>0) fUpdSelect(y,m,d);
var iDiv=fGetById(document,"innerDiv");
fGetById(document,"innerDiv").innerHTML=fDrawCal(y ,m);
if (gcbMon) gcbMon.options[m-1].selected=true;
if (gcbYear) gcbYear.options[y-gcbYear.options[0].value].selected=true;
if (!gbHideTop&&giDCStyle>0) fGetById(document,"calTitle").innerHTML=eval(gsCal Title)+"\n";
fToggleNavs(y,m);
gcTemp=null;
setTimeout("fResize()",giInitDelay+giResizeDelay);
return true;
}

function fResize() {
if (fOnResize) fOnResize();
giInitDelay=0;
var ptb=fGetById(document,"outerTable");
if (!ptb) return;
var ow=ptb.offsetWidth;
var oh=ptb.offsetHeight;
if (ow) gfSelf.style.width=ow+"px";
if (oh) gfSelf.style.height=oh+"px";
}

function fSetDate(y,m,d,taint,e) {
var ag=fGetAgenda(y,m,d,taint);
if (ag==null||ag[1]==null) return false;
if (!fSetCal(y,m,d,true,e)) return false;
if (gbAutoClose) fHideCal();
eval(ag[1].replace(/\n/g,"\\n"));
if (fAfterSelected) fAfterSelected(y,m,d,e);
return true;
}

function fPrevMonth(e) {
return fSetCal(gCurMonth[0],gCurMonth[1]-1,0,true,e);
}
function fNextMonth(e) {
return fSetCal(gCurMonth[0],gCurMonth[1]+1,0,true,e);
}
function showPrevMon() {
if (!__stub[1]&&fPrevMonth()&&!fBfRange(gCurMonth[0],gCurMonth[1])) __stub[1]=setInterval("fPrevMonth()", giShowInterval);
}
function showNextMon() {
if (!__stub[1]&&fNextMonth()&&!fAfRange(gCurMonth[0],gCurMonth[1])) __stub[1]=setInterval("fNextMonth()", giShowInterval);
}
function stopShowMon() {
clearInterval(__stub[1]); __stub[1]=null;
}

function fMouseOver(t) {
if (!gbFocus) return;
gcTemp=t.style.backgroundColor;
t.style.backgroundColor=gcToggle;
}

function fMouseOut(t) {
if (!gbFocus||gcTemp==null) return;
t.style.backgroundColor=gcTemp?gcTemp:"transparent ";
}

function fHint(t,id) {
t.title=__tis[id];
gContainer.status=__tis[id];
}



var __sWH="<td class='WeekHead'><div style='position:relative;width:"+giWeekWidth+"px;t op:"+giHeadTop+"px;'>",
__sCH="<td class='CalHead'><div style='position:relative;width:"+giCellWidth+"px;h eight:"+giHeadHeight+"px;top:"+giHeadTop+"px;'>",
__sWC="<td class='WeekCol'><div style='position:relative;width:100%;top:"+giWeekTo p+"px;'>",
__sCC=" class='CalCol'><div class='CalCell' style='position:relative;width:100%;height:"+giCel lHeight+"px;",
__sDIVTD="</div></td>",
__tis=[];
  #11 (permalink)  
Antiguo 25/04/2005, 02:47
 
Fecha de Ingreso: diciembre-2003
Ubicación: Málaga
Mensajes: 495
Antigüedad: 20 años, 4 meses
Puntos: 0
function fDrawCal(y,m) {
var td,htm,bo,ag,i,c,c1,dayNo,dc,cbg,isT,isS,weekNo,cd ,ex,bfb,sCellDate,sWkCol,weekYear;
var ms=giMarkSelected,ht=giMarkToday;
var a=["<TABLE width='100%' ",gsInnerTable,"><tr>"];
gCurMonth[0]=y; gCurMonth[1]=m;
fBuildCal(y,m);
for (var wd=0,i=0; i<8; i++)
if (i==giWeekCol) a.push(__sWH,gsWeekHead,__sDIVTD);
else if (i!=7||giWeekCol>=0) {
var sDoW=fOnDoWClick?"<a class='DoWAnchor' href='javascript:void(0)' onfocus='if(this.blur)this.blur()' onclick='fOnDoWClick("
+y+","+m+","+(giFirstDOW+wd)%7+");return false;'>"+gWeekDay[wd]+"</a>":"<span class='DoWAnchor'>"+gWeekDay[wd]+"</span>"
a.push(__sCH,sDoW,__sDIVTD); wd++;
}
a.push("</tr>");
if (giWeekCol>=0) {
var w=fDate2W(y,m,1);
weekYear=w[0];
weekNo=w[1];
}
for (var week=0; week<6; week++) {
ex=week>3&&__cal[week][0][1]<20;
if (gbShrink2fit&&ex) continue;
a.push("<tr>");
for (var day=-1,i=0; i<8; i++)
if (i==giWeekCol) {
sWkCol=fOnWeekClick?"<a class='WeekAnchor' href='javascript:void(0)' onfocus='if(this.blur)this.blur()' onclick='fOnWeekClick("+weekYear+","
+weekNo+");return false;'>"+eval(gsWeeks)+"</a>":"<span class='WeekAnchor'>"+eval(gsWeeks)+"</span>";
a.push(__sWC,(giShowOther&8)&&!(giShowOther&16)&&e x?"<span class='WeekAnchor'>&nbsp;</span>":sWkCol,__sDIVTD);
if (m==1&&weekNo>50||m==12&&weekNo>=52&&weekNo>=fDate 2W(y,12,31)[1]) {
weekNo=0; weekYear++;
}
weekNo++;
} else if (i!=7||giWeekCol>=0) {
day++; dayNo=__cal[week][day][1];
var tid=week*10+day;
cd=fCalibrate(y,__cal[week][day][0]);
isT=gToday[2]==dayNo&&gToday[1]==cd[1]&&gToday[0]==cd[0];
ag=fGetAgenda(cd[0],cd[1],dayNo,true);
if (ag==null) {
dc=giShowOther&16&&(week<2&&(giShowOther&4)||week> 3&&(giShowOther&8))?gcOtherDay:"";
cbg=null; bo=false; __tis[tid]=td=htm=""; bfb=gbFlatBorder; c=c1=gcOtherDayBG;
} else {
isS=fIsSelected(cd[0],cd[1],dayNo)&&ag[1]!=null;
var bt=ag[5]+""=="true";
if (cd[1]==m||(giShowOther&2)) {
c=isS&&(ms&2)?gcBGSelected:ag[5]?bt?ag[2]:ag[5]:ag[2]==gcCellBG&&isT&&(ht&3)?gcBGToday:ag[2];
c1=isS&&(ms&1)&&gcBGSelected?gcBGSelected:ag[2]==gcCellBG||bt?isT&&(ht&1)&&gcBGToday?gcBGToday:gc CellBG:ag[2];
bo=isS&&(ms&4)||isT&&(ht&4);
dc=isS&&(ms&8)?gcFGSelected:ag[3]==null&&isT&&(ht&8)?gcFGToday:ag[3];
cbg=isS&&(ms&16)?guSelectedBGImg:ag[4]==guCellBGImg&&isT&&(ht&16)?guTodayBGImg:ag[4];
} else {
bo=false; c=ag[5]&&!bt?ag[5]:ag[2]; c1=bt?gcCellBG:ag[2]; dc=ag[3]; cbg=ag[4];
}
bo=gbBoldAgenda&&ag[0]&&ag[0]!=gsOutOfRange||bo;
bfb=gbFlatBorder&&c1!=gcCellBG;
htm=ag[6]?ag[6]:"";
td=ag[1]==null&&_lineThru?";text-decoration:line-through":"";
__tis[tid]=isS&&gsSelectedTip?gsSelectedTip:ag[0]?ag[0]:isT&&gsTodayTip?gsTodayTip:"";
if (day==giSun&&gcSunBG){c1=c1==gcCellBG?gcSunBG:c1; c=c==gcCellBG?gcSunBG:c;}
if (day==giSat&&gcSatBG){c1=c1==gcCellBG?gcSatBG:c1; c=c==gcCellBG?gcSatBG:c;}
if (dc==null) dc=day==giSun?gcSun:day==giSat?gcSat:gcWorkday;
}
if (gbInvertBold) bo=!bo;
if (gbInvertBorder) bfb=!bfb;
sCellDate=cd[0]+","+cd[1]+","+dayNo;
a.push("<td valign='top'");if(c)a.push(" bgcolor='",c,"'");if(bfb)a.push(" style='border-style:solid;border-color:",c1,"'");a.push(__sCC);if(c1)a.push(";backg round-color:",c1);
if(cbg)a.push(";background-image:url(",cbg,")");if(dc=="")a.push("' ><span class='CellAnchor'>&nbsp;</span>",__sDIVTD);else{
if(!_mcafee)a.push("' onmouseover='fHint(this,",tid,");fMouseOver(this); fDragIt(",sCellDate,",1,event);return true' onmouseout='fMouseOut(this)' onmousedown='fDragIt(",sCellDate,",0,event)' onmouseup='fDragIt(",sCellDate,",2,event)");
a.push("' onclick='fSetDate(",sCellDate,",true,event)'><A href='javascript:void(0)' class='CellAnchor' style='color:",dc);
if(bo)a.push(";font-weight:bold");a.push(td,"' onmouseover='fHint(this,",tid,")' onfocus='if(this.blur)this.blur()'>",eval(gsDays), "</A>",htm,__sDIVTD);}
ag=null;
}
a.push("</tr>");
}
a.push("</TABLE>\n");
return a.join('');
}

with (document) {
body.bgColor=gcCalBG;
var a=["<TABLE id='outerTable' ",gsOuterTable,"><FORM name='cxpTopForm'>"];
if (!gbHideTop)
if (giDCStyle==2)
a.push("<TR><TD class='CalTop' nowrap><SPAN id='calTitle' class='CalTitle'>",eval(gsCalTitle),"</SPAN></TD></TR>");
else if (giDCStyle==1){
a.push("<TR><TD class='CalTop' nowrap><table border=0 cellspacing=0 cellpadding=0 width='100%'><tr><TD align='left' nowrap>",gsNavPrev,"</TD><TD class='CalTitle' nowrap><SPAN id='calTitle'>");
a.push(eval(gsCalTitle));
a.push("</SPAN></TD><TD align='right' nowrap>",gsNavNext,"</TD></tr></table></TD></TR>");
} else {
a.push("<TR><TD class='CalTop' nowrap>",gsNavPrev," ");
var mstr=["<SELECT id='MonSelect' class='CalTitle' onchange='fSetCal(gcbYear.value, gcbMon.value,0,true,event)'>"];
for (var i=0; i<12; i++) mstr.push("<OPTION value='",i+1,"'>",gMonths[i],"</OPTION>");
mstr.push("</SELECT>"); mstr=mstr.join('');
var ystr=["<SELECT id='YearSelect' class='CalTitle' onchange='fSetCal(gcbYear.value, gcbMon.value,0,true,event)'>"];
for(var i=gBegin[0];i<=gEnd[0];i++)
ystr.push("<OPTION value='",i,"'>",i,"</OPTION>");
ystr.push("</SELECT>"); ystr=ystr.join('');
if (gbDCSeq) a.push(mstr,ystr);
else a.push(ystr,mstr);
a.push(" ",gsNavNext,"</TD></TR>");
}
a.push("</FORM><TR><TD class='CalMiddle'><DIV id='innerDiv' style='background:",gcCalFrame,guCalBG?" url("+guCalBG+") ":"",";'></DIV></TD></TR>");
if (!gbHideBottom) a.push("<FORM name='cxpBottomForm'><TR><TD class='CalBottom' nowrap>",gsBottom,"</TD></TR></FORM>");
a.push("</TABLE>");
for (var i=0;i<giFreeDiv;i++)
a.push("<DIV class='FreeDiv' id='freeDiv",i,"' style='position:absolute;visibility:hidden;z-index:500'></DIV>");
write(a.join(''));
close();
}
</script>
<script type='text/javascript'>
if (giDCStyle==0) {
gcbMon=fGetById(document,"MonSelect");
gcbYear=fGetById(document,"YearSelect");
}
if (!gTheme[3]) gTheme[3]="gfPop";
function fAgReady(ctxName) {
var ctx=eval("gContainer."+ctxName);
if (ctx) {
clearInterval(__stub[0]);
fHoliday=ctx.fHoliday;
fRepaint();
}
}
var __isAS=gTheme[2]&&gTheme[2].substring(0,6)=="share[";
if (gbShareAgenda==true) {
if (!eval(gsAgShared)) eval(gsAgShared+"=[]");
if (__isAS) __stub[0]=setInterval("fAgReady('"+gTheme[2].split('[')[1].split(']')[0]+"')",350);
}
if (gTheme[2]&&!__isAS) document.write("<scr"+"ipt type='text/javascript' src='"+gTheme[2]+(gbCacheAgenda?"":(/\?/.test(gTheme[2])?"&":"?")+gd.getTime())+"'></scr"+"ipt>");
</script>
<a href="http://www.calendarxp.net/calendar/javascript_calendar.htm" style="display:none">JavaScript Calendar</a><a href="http://www.calendarxp.net" style="display:none">JavaScript Date Picker</a><a href="http://www.idemfactor.com" style="display:none">Idemfactor Solutions Inc.</a>
<script type='text/javascript'>
var __omd=gContainer.document.onmousedown?gContainer.d ocument.onmousedown:null;
gContainer.document.onmousedown=function(e){
var n=!e?gContainer.event.srcElement:e.target;
if (!(/PopcalTrigger/i.test(n.className)||/popcal/i.test(n.name))) fHideCal();
if (__omd) __omd(e);
}
var __okd=gContainer.document.onkeydown?gContainer.doc ument.onkeydown:null;
gContainer.document.onkeydown=function(e){var evt=e?e:gContainer.event;if(evt.keyCode==27)fHideC al();if(__okd)__okd(e);}
var __okd1=document.onkeydown?document.onkeydown:null;
document.onkeydown=function(e){var evt=e?e:event;if(evt.keyCode==27)fHideCal();if(__o kd1)__okd1(e);}
eval("parent."+gTheme[3]+"=parent.frames[self.name]");
</script>
</body>
</html>

Hasta aki es el larguito codigo :S
  #12 (permalink)  
Antiguo 26/04/2005, 08:49
 
Fecha de Ingreso: diciembre-2003
Ubicación: Málaga
Mensajes: 495
Antigüedad: 20 años, 4 meses
Puntos: 0
se podria poner en vez d en un form en cualquier otra etiqueta el onsubmit="alert('form submit');">
  #13 (permalink)  
Antiguo 26/04/2005, 09:28
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola karpoj23

El evento onsubmit, que yo sepa, solo se puede aplicar a un formulario.

Saludos,
  #14 (permalink)  
Antiguo 26/04/2005, 14:08
Avatar de deathma5k  
Fecha de Ingreso: marzo-2005
Ubicación: Venezuela
Mensajes: 33
Antigüedad: 19 años, 1 mes
Puntos: 0
recomiendo el uso de otro script
demasiado codigo para un simple pop calendar
y hasta es posible q te ralentize el display de la pagina
Saludos
  #15 (permalink)  
Antiguo 27/04/2005, 00:54
 
Fecha de Ingreso: diciembre-2003
Ubicación: Málaga
Mensajes: 495
Antigüedad: 20 años, 4 meses
Puntos: 0
he pensado utilizar esto:


if ((empty($_POST[dc1])) and (empty($_POST[dc2])))
{
echo "<FORM name='demoform' action='index.php' onsubmit='alert('form submit');'>";
echo "<div style='position:absolute;top:170px;left:158'><font face='tahoma' size=1 color=#9c9ece>Desde <input name='dc1' size='12' onsubmit='alert('form submit');' onfocus='this.blur()' readonly><a href='javascript:void(0)' onclick='if(self.gfPop)gfPop.fStartPop(document.de moform.dc1,document.demoform.dc2);return false;' HIDEFOCUS><img align='absmiddle' src='DateRange/calbtn.gif' width='34' height='22' border='0' alt=''></a></font></div>";
echo "<div style='position:absolute;top:200px;left:157'><font face='tahoma' size=1 color=#9c9ece>Hasta: <input name='dc2' size='12' onsubmit='alert('form submit');' onfocus='this.blur()' readonly><a href='javascript:void(0)' onclick='if(self.gfPop)gfPop.fEndPop(document.demo form.dc1,document.demoform.dc2);return false;' HIDEFOCUS><img align='absmiddle' src='DateRange/calbtn.gif' width='34' height='22' border='0' alt=''></a></fotn></div>";
echo "<iframe width=132 height=142 name='gToday:contrast:agenda.js' id='gToday:contrast:agenda.js' src='DateRange/ipopeng.htm' scrolling='no' frameborder='0' style='visibility:visible; z-index:999; position:absolute; top:-500px; left:-500px;'></iframe>";
echo "<div style='position:absolute;top:230;left:350'><input type='submit' name='busdesfecha' title='Introducir Fecha' value='Introducir Fecha'></div>";
echo "</form>";
}
else
{
$a=$_POST[dc1];
$b=$_POST[dc2];
echo $a;
echo $b;
?>

<form method="post" action="lista.php">

<?
echo "<input type='hidden' value='<? $a ?>' name='dc1' />";
echo "<input type='hidden' value='<? $b ?>' name='dc2' />";
?>

Es decir, si no he mandado nada q aparezca el calendario, y si ya ha mandado algo q lo recupere y lo meto en 2 variables, para despues meterlos en 2 inputs. No lo puedo probar hasta la noche, pero como lo ven???
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 20:02.