Ir para conteúdo

POWERED BY:

Arquivado

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

Rafael J. Nunes

Sistema Ordem Serviço

Recommended Posts

Bom dia pessoal, seguinte..

Eu estou montando um sisteminha aonde o usuário pode solicitar o reparo, manutençao do seu micro para o setor onde eu trabalho..

Montei um formulário com alguns dados, me pediram que eu colocasse um campo de data e hora automáticas e fosse gravado no bd..

Alguém sabe como pode ser pego e gravada no banco?

Se quiserem posso liberar esse sisteminha para voces..

 

Tela do Formulário de solicitaçao:

 

Imagem Postada

 

Código Fonte:

 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>GTI - Solicitar Serviço</title>
<link href="css/css.css" rel="stylesheet" type="text/css">
<script type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

//-->
</script><script language=JavaScript>
<!--

function SymError()
{
  return true;
}

window.onerror = SymError;

//-->
</SCRIPT>

<script type=text/javascript>
documentall = document.all;
/*
* função para formatação de valores monetários retirada de
* http://jonasgalvez.com/br/blog/2003-08/egocentrismo
*/

function formatamoney(c) {
	var t = this; if(c == undefined) c = 2;
	var p, d = (t=t.split("."))[1].substr(0, c);
	for(p = (t=t[0]).length; (p-=3) >= 1;) {
			t = t.substr(0,p) + "." + t.substr(p);
	}
	return t+"."+d+Array(c+1-d.length).join(0);
}

String.prototype.formatCurrency=formatamoney

function demaskvalue(valor, currency){
/*
* Se currency é false, retorna o valor sem apenas com os números. Se é true, os dois últimos caracteres são considerados as
* casas decimais
*/
var val2 = '';
var strCheck = '0123456789';
var len = valor.length;
	if (len== 0){
		return 0.00;
	}

	if (currency ==true){
		/* Elimina os zeros à esquerda
		* a variável  <i> passa a ser a localização do primeiro caractere após os zeros e
		* val2 contém os caracteres (descontando os zeros à esquerda)
		*/

		for(var i = 0; i < len; i++)
			if ((valor.charAt(i) != '0') && (valor.charAt(i) != ',')) break;

		for(; i < len; i++){
			if (strCheck.indexOf(valor.charAt(i))!=-1) val2+= valor.charAt(i);
		}

		if(val2.length==0) return "0.00";
		if (val2.length==1)return "0.0" + val2;
		if (val2.length==2)return "0." + val2;

		var parte1 = val2.substring(0,val2.length-2);
		var parte2 = val2.substring(val2.length-2);
		var returnvalue = parte1 + "." + parte2;
		return returnvalue;

	}
	else{
			/* currency é false: retornamos os valores COM os zeros à esquerda,
			* sem considerar os últimos 2 algarismos como casas decimais
			*/
			val3 ="";
			for(var k=0; k < len; k++){
				if (strCheck.indexOf(valor.charAt(k))!=-1) val3+= valor.charAt(k);
			}
	return val3;
	}
}

function reais(obj,event){

var whichCode = (window.Event) ? event.which : event.keyCode;
/*
Executa a formatação após o backspace nos navegadores !document.all
*/
if (whichCode == 8 && !documentall) {
/*
Previne a ação padrão nos navegadores
*/
	if (event.preventDefault){ //standart browsers
			event.preventDefault();
		}else{ // internet explorer
			event.returnValue = false;
	}
	var valor = obj.value;
	var x = valor.substring(0,valor.length-1);
	obj.value= demaskvalue(x,true).formatCurrency();
	return false;
}
/*
Executa o Formata Reais e faz o format currency novamente após o backspace
*/
FormataReais(obj,'.',',',event);
} // end reais


function backspace(obj,event){
/*
Essa função basicamente altera o  backspace nos input com máscara reais para os navegadores IE e opera.
O IE não detecta o keycode 8 no evento keypress, por isso, tratamos no keydown.
Como o opera suporta o infame document.all, tratamos dele na mesma parte do código.
*/

var whichCode = (window.Event) ? event.which : event.keyCode;
if (whichCode == 8 && documentall) {
	var valor = obj.value;
	var x = valor.substring(0,valor.length-1);
	var y = demaskvalue(x,true).formatCurrency();

	obj.value =""; //necessário para o opera
	obj.value += y;

	if (event.preventDefault){ //standart browsers
			event.preventDefault();
		}else{ // internet explorer
			event.returnValue = false;
	}
	return false;

	}// end if
}// end backspace

function FormataReais(fld, milSep, decSep, e) {
var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789';
var aux = aux2 = '';
var whichCode = (window.Event) ? e.which : e.keyCode;

//if (whichCode == 8 ) return true; //backspace - estamos tratando disso em outra função no keydown
if (whichCode == 0 ) return true;
if (whichCode == 9 ) return true; //tecla tab
if (whichCode == 13) return true; //tecla enter
if (whichCode == 16) return true; //shift internet explorer
if (whichCode == 17) return true; //control no internet explorer
if (whichCode == 27 ) return true; //tecla esc
if (whichCode == 34 ) return true; //tecla end
if (whichCode == 35 ) return true;//tecla end
if (whichCode == 36 ) return true; //tecla home

/*
O trecho abaixo previne a ação padrão nos navegadores. Não estamos inserindo o caractere normalmente, mas via script
*/

if (e.preventDefault){ //standart browsers
		e.preventDefault()
	}else{ // internet explorer
		e.returnValue = false
}

var key = String.fromCharCode(whichCode);  // Valor para o código da Chave
if (strCheck.indexOf(key) == -1) return false;  // Chave inválida

/*
Concatenamos ao value o keycode de key, se esse for um número
*/
fld.value += key;

var len = fld.value.length;
var bodeaux = demaskvalue(fld.value,true).formatCurrency();
fld.value=bodeaux;

/*
Essa parte da função tão somente move o cursor para o final no opera. Atualmente não existe como movê-lo no konqueror.
*/
  if (fld.createTextRange) {
	var range = fld.createTextRange();
	range.collapse(false);
	range.select();
  }
  else if (fld.setSelectionRange) {
	fld.focus();
	var length = fld.value.length;
	fld.setSelectionRange(length, length);
  }
  return false;

}
function MM_validateForm() { //v4.0
  if (document.getElementById){
	var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
	for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
	  if (val) { nm=val.name; if ((val=val.value)!="") {
		if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
		  if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
		} else if (test!='R') { num = parseFloat(val);
		  if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
		  if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
			min=test.substring(8,p); max=test.substring(p+1);
			if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
	  } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
	} if (errors) alert('The following error(s) occurred:\n'+errors);
	document.MM_returnValue = (errors == '');
} }
</SCRIPT>
</head>

<body>

<center>
<p align="center"><img src="img/logo_chamdas.jpg" width="800" height="120">
<form action="action/os.php" method="post" name="form1" onSubmit="MM_validateForm('departamento','','R','responsalvel',','patrimonio','equipamento','','R','detalhes',','R','data_atual','R','garantia');return document.MM_returnValue">
	<table align="center" bgcolor="" width="750" border="0" cellpadding="0" cellspacing="5" class="css">
	  <tr>
		<td>Data:</td>
		<td><input name="data_atual" type="text" id="data_atual" size="8">
		  Hora: 
		  <input name="garantia" type="text" id="garantia" size="13"></td>
	  </tr>
	  <tr>
		<td width="21%">Departamento:</td>
		<td width="79%"><input name="departamento" type="text" id="departamento" size="30">
		    Responsável:
		  <input name="responsavel"text" id="responsavel" size="30"></td>
	  </tr>
	  <tr>
		<td>Patrimonio:</td>
		<td><input name="patrimonio" type="text" id="email" size="15">
		 Equipamento :  
		<label>
		  <input name="equipamento" type="text" id="equipamento" size="43">
		</label></td>
	  </tr>
	  <tr>
		<td>Problema Apresentado:</td>
		<td><textarea name="detalhes" cols="67" rows="6" id="detalhes"></textarea></td>
	  </tr>
	  <tr>
		<td> </td>
		<td><div align="right"></div></td>
	  </tr>
	  <tr>
		<td><input name="set" type="hidden" id="set" value="1"></td>
		<td><input name="Submit" type="submit" class="" value="Solicitar Serviço"></td>
	  </tr>
	</table>
	<p><? include ('pe.php'); ?>
	</p>
</form>
</center>
</body>
</html>

Obrigado pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para pegar data e hora basta você chamar atraves do PHP

 

$data_atual = date('Y/m/d');

$hora_atual = date("H:i:s");

 

e coloca-las no value do campo

 

<input name="data_atual" type="text" id="data_atual" size="8" value="<?php echo $data_atual; ?>">

Faça a mesma coisa para pegar a hora.

 

Para gravar no banco você escolhe o DATETIME para o campo.

 

flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para salvar no banco com a data e a hora em campos separados, crie um campo do tipo DATE para a data e outro do tipo TIME para hora.

Lembrando que para salvar a data no banco, você precisa formatar a data no padrão aaaa-mm-dd.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado pela ajuda de vocês!

 

@metalheart

 

Fiz o que você disse mas na hora de mostrar ele joga a data e hora atual e nao a data em que o serviço foi solicitado..

Joguei essas 2 variáveis no arquivo config.php e no arquivo aonde consta as informações do serviço eu fiz um include..

Eu coloquei:

Hora: <?php echo"$hora_atual"; ?> <b>Data: <?php echo"$data_atual"; ?>

Agradeço pela atenção!

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo... Quando você coloca

<input name="data_atual" type="text" id="data_atual" size="8" value="<?php echo $data_atual; ?>">
significa que no campo data_atual ja vai aparecer a data do dia, aí você preenche o restante dos campos e manda gravar..

 

Qunado você for exibir, você deve buscar a informação de acordo com o campo da sua base de dados, exemplo:

 

<?php echo $row['data']; ?> aqui foi armazenada a data que estava no campo data_atual no momento que você clicou em grava...

 

 

certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo... Quando você coloca

<input name="data_atual" type="text" id="data_atual" size="8" value="<?php echo $data_atual; ?>">
significa que no campo data_atual ja vai aparecer a data do dia, aí você preenche o restante dos campos e manda gravar..

 

Qunado você for exibir, você deve buscar a informação de acordo com o campo da sua base de dados, exemplo:

 

<?php echo $row['data']; ?> aqui foi armazenada a data que estava no campo data_atual no momento que você clicou em grava...

 

 

certo?

 

 

Agora o campo ficou vazio..

olha só como está o código:

 

<form action="action/os.php" method="post" name="form1" onSubmit="MM_validateForm('departamento','','R','responsalvel',','patrimonio','equipamento','','R','detalhes',','R','data','R','hora_atual','R','garantia');return document.MM_returnValue"><br>

<input name="data_atual" type="text" id="data_atual" size="8" value="<?php echo $data_atual; ?>">

<table align="center" bgcolor="" width="750" border="0" cellpadding="0" cellspacing="5" class="css">

<tr>

<td width="21%">Departamento:</td>

<td width="79%"><input name="departamento" type="text" id="departamento" size="30">

  Responsável:

<input name="responsavel"text" id="responsavel" size="30"></td>

</tr>

<tr>

<td>Patrimonio:</td>

<td><input name="patrimonio" type="text" id="email" size="15">

 Equipamento :  

<label>

<input name="equipamento" type="text" id="equipamento" size="43">

</label></td>

</tr>

<tr>

<td>Problema Apresentado:</td>

<td><textarea name="detalhes" cols="67" rows="6" id="detalhes"></textarea></td>

</tr>

<tr>

<td> </td>

<td><div align="right"></div></td>

</tr>

<tr>

<td><input name="set" type="hidden" id="set" value="1"></td>

<td><input name="Submit" type="submit" class="" value="Solicitar Serviço"></td>

</tr>

</table>

Obrigado pela atenção!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para capturar a data do dia atual:

 

1º você instancia a variável e atribui a data do dia

$data_atual = date('Y/m/d')

Depois você chama a variável no local que você quer que apareça a data

<input name="data_atual" type="text" id="data_atual" size="8" value="<?php echo $data_atual; ?>">

 

ou você pode fazer de uma so vez...

<input name="data_atual" type="text" id="data_atual" size="8" value="<?php echo date('Y/m/d'); ?>">

 

Aí voce mandar gravar no banco...

Compartilhar este post


Link para o post
Compartilhar em outros sites

está aí:

 

mysql_query("insert into os(departamento,responsavel,patrimonio,equipamento,detalhes,data)

values ('$departamento','$responsavel','$patrimonio','$equipamento','$detalhes','$data')") or die(mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

Experimente imprimir o valor de $data antes de grava e ver o que aparece

 

<?php echo $data; ?>

 

Se imprimir a data corretamente, o problema está no momento de grava no banco :blink:

 

 

flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

está aí:

 

mysql_query("insert into os(departamento,responsavel,patrimonio,equipamento,detalhes,data)

values ('$departamento','$responsavel','$patrimonio','$equipamento','$detalhes','$data')") or die(mysql_error());

insert into os(departamento,responsavel,patrimonio,equipamento,detalhes,data)

values ('$departamento','$responsavel','$patrimonio','$equipamento','$detalhes',curdate())

Se for data e hora, use now().

 

Faz assim e seja feliz.

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.