Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Naelson

Data ou String ?

Recommended Posts

Achei um erro aqui

<td><input type="text" name="nome" onblur=value="<?php echo $soma?>" size="10" maxlength="22" />

Isto aqui não funciona... O correto seria assim:

 

<td><input type="text" name="nome" value="<?php echo $soma?>" size="10" maxlength="22" />

Sem o onblur...

A não ser que o que você queira seja que, ao sair do campo ele execute uma função para retornar o valor... Se for isto, tá muito errado. Pra fazer isto, tem que colocar a função em javascript ou chamar a página PHP via ajax.

 

Qualquer coisa posta aí de novo

 

Carlos Eduardo

Olá Carlos tudo bem,

Mais uma vez fico te devendo uma, a intenção era essa, na saida do campo mostrar o resultado, mais como não sou nenhum profissional e fica complicado ficar incomodando os outros, eu estou quase desistindo de mostrar o resultado na hora, já pesquisei e não consegui encontrar nada que pudesse me ajudar nessa questão, e não entendo nada de javascript ou ajax precisaria de algumas rotinas prontas para eu poder trabalhar em cima, mais está dificil ou eu não estou conseguindo pesquisar direito, mais voce entendeu a questão não é, voce tem idéia de onde eu posso encontrar alguma rotina que resolvesse isso, se tiver mais uma vez, agradeceria sua boa vontade e gentileza.

 

Um abraço

 

Naelson

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade não é muito simples mas também não é muito complicado...

 

Aqui tem uma função para somar data

 

Link

 

Tenta me explicar com um exemplo como ficaria o teu form (tipo preenchendo quais campos você quer que ele preencha o que em que campo).

 

Daí eu te ajudo a fazer...

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade não é muito simples mas também não é muito complicado...

 

Aqui tem uma função para somar data

 

Link

 

Tenta me explicar com um exemplo como ficaria o teu form (tipo preenchendo quais campos você quer que ele preencha o que em que campo).

 

Daí eu te ajudo a fazer...

 

Carlos Eduardo

Olá Carlos vou colocar uma foto para ver se da para voce ter uma ideia do funcionamento do programa.

Imagem Postada

Um abraço

Naelson

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom... então você vai usar uma função javascript que tá no link que eu passei.

function SomarData(txtData,DiasAdd) 
{
// Tratamento das Variaveis.
// var txtData = "01/01/2007"; //poder ser qualquer outra
// var DiasAdd = 10 // Aqui vem quantos dias você quer adicionar a data
var d = new Date();
// Aqui eu "mudo" a configuração de datas.
// Crio um obj Date e pego o campo txtData e 
// "recorto" ela com o split("/") e depois dou um
// reverse() para deixar ela em padrão americanos YYYY/MM/DD
// e logo em seguida eu coloco as barras "/" com o join("/")
// depois, em milisegundos, eu multiplico um dia (86400000 milisegundos)
// pelo número de dias que quero somar a txtData.
d.setTime(Date.parse(txtData.split("/").reverse().join("/"))+(86400000*(DiasAdd)))

// Crio a var da DataFinal 
var DataFinal;

// Aqui comparo o dia no objeto d.getDate() e vejo se é menor que dia 10. 
if(d.getDate() < 10)
{
// Se o dia for menor que 10 eu coloca o zero no inicio
// e depois transformo em string com o toString()
// para o zero ser reconhecido como uma string e não
// como um número.
DataFinal = "0"+d.getDate().toString();
}
else
{ 
// Aqui a mesma coisa, porém se a data for maior do que 10
// não tenho necessidade de colocar um zero na frente.
DataFinal = d.getDate().toString(); 
}

// Aqui, já com a soma do mês, vejo se é menor do que 10
// se for coloco o zero ou não.
if((d.getMonth()+1) < 10){
DataFinal += "/0"+(d.getMonth()+1).toString()+"/"+d.getFullYear().toString();
}
else
{
DataFinal += "/"+((d.getMonth()+1).toString())+"/"+d.getFullYear().toString();
}
document.getElementById(revelia).value = DataFinal;
}

Daí você muda isto

 

<td><input type="text" name="nome" onblur=value="<?php echo $soma;	?>" size="10" maxlength="22" />

Por isto

 

<td><input type="text" name="nome" id="revelia" size="10" maxlength="22" />

Troca isto aqui

 

<td><input type="text" name="AR_Rec_Origem_<?php echo $cnt1; ?>" id="AR_Rec_Origem_<?php echo $cnt1; ?>" value="<?php echo KT_formatDate($row_rsnotificacao['AR_Rec_Origem']); ?>" onchange="SomarData(this.value,document.getElementById('Prazo_<?php echo $cnt1; ?>').value)" size="10" maxlength="22" />

Mais ou menos isto. Só que aí vai somar os dias... Não os dias úteis... A lógica é mais ou menos isto... não testei, então não sei se vai funcionar...

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom... então você vai usar uma função javascript que tá no link que eu passei.

function SomarData(txtData,DiasAdd) 
{
// Tratamento das Variaveis.
// var txtData = "01/01/2007"; //poder ser qualquer outra
// var DiasAdd = 10 // Aqui vem quantos dias você quer adicionar a data
var d = new Date();
// Aqui eu "mudo" a configuração de datas.
// Crio um obj Date e pego o campo txtData e 
// "recorto" ela com o split("/") e depois dou um
// reverse() para deixar ela em padrão americanos YYYY/MM/DD
// e logo em seguida eu coloco as barras "/" com o join("/")
// depois, em milisegundos, eu multiplico um dia (86400000 milisegundos)
// pelo número de dias que quero somar a txtData.
d.setTime(Date.parse(txtData.split("/").reverse().join("/"))+(86400000*(DiasAdd)))

// Crio a var da DataFinal 
var DataFinal;

// Aqui comparo o dia no objeto d.getDate() e vejo se é menor que dia 10. 
if(d.getDate() < 10)
{
// Se o dia for menor que 10 eu coloca o zero no inicio
// e depois transformo em string com o toString()
// para o zero ser reconhecido como uma string e não
// como um número.
DataFinal = "0"+d.getDate().toString();
}
else
{ 
// Aqui a mesma coisa, porém se a data for maior do que 10
// não tenho necessidade de colocar um zero na frente.
DataFinal = d.getDate().toString(); 
}

// Aqui, já com a soma do mês, vejo se é menor do que 10
// se for coloco o zero ou não.
if((d.getMonth()+1) < 10){
DataFinal += "/0"+(d.getMonth()+1).toString()+"/"+d.getFullYear().toString();
}
else
{
DataFinal += "/"+((d.getMonth()+1).toString())+"/"+d.getFullYear().toString();
}
document.getElementById(revelia).value = DataFinal;
}

Daí você muda isto

 

<td><input type="text" name="nome" onblur=value="<?php echo $soma;	?>" size="10" maxlength="22" />

Por isto

 

<td><input type="text" name="nome" id="revelia" size="10" maxlength="22" />

Troca isto aqui

 

<td><input type="text" name="AR_Rec_Origem_<?php echo $cnt1; ?>" id="AR_Rec_Origem_<?php echo $cnt1; ?>" value="<?php echo KT_formatDate($row_rsnotificacao['AR_Rec_Origem']); ?>" onchange="SomarData(this.value,document.getElementById('Prazo_<?php echo $cnt1; ?>').value)" size="10" maxlength="22" />

Mais ou menos isto. Só que aí vai somar os dias... Não os dias úteis... A lógica é mais ou menos isto... não testei, então não sei se vai funcionar...

 

Carlos Eduardo

Olá Carlos, mais uma vez agradeço sua atenção,

Testei rapidamente hoje cedo em casa e não mostrou o resultado no outro campo, a tarde vou dar uma testada com calma e ver se funciona legal.

 

Um abraço

 

Naelson

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.