Ir para conteúdo

POWERED BY:

Arquivado

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

Lucas Fernando

select usando checkbox

Recommended Posts

Ola pessoal boa tarde,

 

É o seguinte, estou construindo um sistema de apontamento de horas, na verdade já esta tudo praticamente pronto, porem surgiu a necessidade de aprovar essas horas "Sim" ou "Não".

 

dessa forma criei um campo na tabela responsavel por armazenar esses valores no campo com apenas 1 caracter do tipo char S = sim, N = não.

 

 

para aprovação das horas crei um select no qual aparecem as seguintes informações:

 

Data Nome Projeto Tipo Horas Obs Aprovado Responsável 12/12/2013 Fulano Projeto x HN 0.5 adm

 

Porem o campo aprovado é um checkbox que eu quero que fique desmarcado para não e marcado para sim.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites


<?php

include('auth.php');

include('biblio.fcn');

/*if($timeapp_level == "User"){

echo "<script language='javascript'>alert('A\xe7\xe3o n\xe3o permitida'); window.location.href = 'index.php'</script>";

header("Location:index.php");

}*/

?>

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

 

<script type="text/javascript" src="appman/jquery-1.3.2.min.js"></script>

 

<link rel="stylesheet" href="appman/adm.css" type="text/css" media="screen" title="default" />

<link rel="stylesheet" href="appman/screen.css" type="text/css" media="screen" title="default" />

<link rel="stylesheet" href="timeapp.css" type="text/css">

<link rel="stylesheet" href="appman/jquery-ui-1.8.20.custom.css" type="text/css" media="screen" title="default" />

<script type="text/javascript" src="appman/jquery-1.7.2.min.js"></script>

<script type="text/javascript" src="appman/jquery-ui-1.8.20.custom.min.js"></script>

 

 

 

 

<title>Aprovação de Horas</title>

</head>

 

<body>

<table id="form" width="50%" border="1" align="left" cellpadding="0" cellspacing="1"><!-- tabela principal -->

<tr>

<td>

 

 

<form id="cadastro" action="#" method="post" enctype="multipart/form-data" name="cadastro">

 

<tr>

<td width="20%" >Data de Inicio: </td>

<td align="left">

 <input type="text" name="start_date" size="10" maxlength="10" OnKeyUp="datainicio(this);"> 

 

*</td>

</tr>

<tr>

<td>Data de Termino: </td>

<td align="left">

 <input type="text" name="end_date" size="10" maxlength="10" OnKeyUp="datatermino(this);" >

*</td>

</tr>

 

 

<tr>

<td>Projeto: </td>

<td>

<select name="type_id">

<option value="">Todos</option>

<?php

$tresults = mysql_query("select * from time_types order by description");

if($trow = mysql_fetch_array($tresults)){

do{

?>

<option value="<?php print $trow['type_id']; ?>"><?php print $trow['description']; ?></option>

<?php

}while($trow = mysql_fetch_array($tresults));

}

?>

</select>

</td>

</tr>

 

<tr>

<td>Funcionário: </td>

<td>

<select name="user_id">

<option value="">Todos</option>

<?php

$uresults = mysql_query("select * from user_info where level = 'User' or level = 'Administrator' order by fname");

if($urow = mysql_fetch_array($uresults)){

do{

?>

<option value="<?php print $urow['user_id']; ?>"><?php print $urow['fname']; ?> <?php print $urow['lname']; ?></option>

<?php

}while($urow = mysql_fetch_array($uresults));

}

?>

</select>

</td>

</tr>

 

<tr>

<td>Aprovado: </td>

<td>

<select name="status_appro">

<option value="N">Não</option>

<option value="S">Sim</option>

</select>

</td>

</tr>

 

<tr>

<td><input type="submit" value="Filtrar" class="" name="enviar"/>

</td>

</tr>

 

 

</tr>

</table>

 

</form><!--fecha "cadastro"-->

 

<?php

 

//----------------- pega os dados do formulario -------------------------

$data_inicio = (isset($_POST['start_date'])) ? $_POST['start_date'] : '';

$data_termino = (isset($_POST['end_date'])) ? $_POST['end_date'] : '';

$projeto = (isset($_POST['type_id'])) ? $_POST['type_id'] : '';

$funcionario = (isset($_POST['user_id'])) ? $_POST['user_id'] : '';

$status = (isset($_POST['status_appro'])) ? $_POST['status_appro'] : '';

 

if (($data_inicio!='')&&($data_termino!='')){

//-------------------------- consulta --------------------------------

@$consulta = "select usr.fname as fun_fname, usr.lname as fun_lname , fun.function_desc, dat.time_id,

dat.function_fk, DATE_FORMAT(dat.data_date, '%d/%m/%Y') AS date_br, wor.work_name, dat.hours, pro.type_id, pro.description,

dat.notes, dat.status_appro, CASE dat.status_appro

WHEN 'S' THEN 'Sim'

WHEN 'N' THEN 'Não'

END as status_appro, dat.user_appro_fk, app.user_id, app.fname as app_fname, app.lname as app_lname

from

user_info usr, user_functions fun, time_work wor, time_types pro, time_data dat, user_info app

where dat.function_fk = fun.function_id and usr.user_id = dat.user_id and dat.type_id = pro.type_id and dat.work_id_fk = wor.work_id and dat.user_appro_fk = app.user_id

and dat.user_id LIKE '%$funcionario%' and dat.type_id LIKE '%$projeto%' and dat.status_appro LIKE '%$status%' and dat.data_date between '$data_inicio' and '$data_termino'

order by dat.data_date desc";

@$resultado = mysql_query($consulta) or die("Escolha uma data de inicio e termino!");

// --------------------------------------------------------------------

}

echo"

<form id='notas' action='write_appman.php' method='post' enctype='multipart/form-data' name='notas'>

<table class='consulta' border='0' width='100%' id='table_notas'>

<tr id='linha1'>

<td>Data</td>

<td>Nome</td>

<td>Projeto</td>

<td>Tipo</td>

<td>Horas</td>

<td>Obs</td>

<td>Aprovado</td>

<td>Responsável</td>

</tr>";

 

$i = 0;

//Busca os campos da tabela

while (@$linha = mysql_fetch_assoc($resultado)) {

$data = $linha['date_br'];

$nome = $linha['fun_fname'];

$sobrenome = $linha['fun_lname'];

$projeto_cod = $linha['type_id'];

$projeto_nome = $linha['description'];

$tipo_hora = $linha['work_name'];

$horas = $linha['hours'];

$observacao = $linha['notes'];

$condicao = $linha['status_appro'];

$res_nome = $linha['app_fname'];

$res_snome = $linha['app_lname'];

$cod_hora = $linha['time_id'];

 

echo"<tr id='infos'>

<td>".$data."</td>

<td>".$nome." ".$sobrenome."</td>

<td>".$projeto_cod." - ".$projeto_nome."</td>

<td>".$tipo_hora."</td>

<td>".$horas."</td>

<td>".$observacao."</td>

<td>

<input type='text' name='condicao".$i."' onblur=valida(this.value,'condicao".$i."'); align='center' value='".$condicao."' checked='yes'/>";

 

 

echo "<input type='hidden' name='data_inicio' value='".$data_inicio."'/>

<input type='hidden' name='data_termino' value='".$data_termino."'/>

<input type='hidden' name='cod_hora[]' value='".$cod_hora."'/>

</td>

<td>".$res_nome." ".$res_snome."</td>

</tr>";

 

$i++;

}

echo"

<input type='hidden' name='total' value='".$i."'>

<tr>

<td colspan='3'>  </td>

</tr>

</table>

<table>

<tr>

<td colspan='3'>

<input type='submit' value='Salvar' class='' name='enviar'/>

<input type='reset' value='Limpar' class=''/>

</td>

</tr>

</table>";

 

?>

</table>

</form>

 

</td>

</tr>

</table>

</td>

</tr>

</table>

 

 

 

<!--<input type='checkbox' class='' name='condicao".$i."' onblur=valida(this.value,'condicao".$i."'); align='center' value='".$condicao."'/>";-->

</body>

 

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal me desculpem se o codigo ficou muito grande e eu acabei não especificando o que não estou conseguindo fazer, como ainda não consegui usar o checkbox no momento esta assim.

 

<input type='text' name='condicao".$i."'  align='center' maxlength='1' size='1'   value='".$condicao."'  />";

Eu não estou sabendo a logica de colocar isso em checkbox. Como voces podem reparar é um array da forma como está aparece assim.

 

Data Nome Projeto Tipo Horas Obs Aprovado Responsável

13/12/2013 fulano teste HN 1 N Não Aprovado

13/12/2013 fulano teste HN 6 N Não Aprovado

 

No momento o campo aprovado está como texto, era justamente ele que eu queria alterar para CHECKBOX, porem depois eu vou fazer um update no banco, baseado nas alterações feitas no checkbox

Compartilhar este post


Link para o post
Compartilhar em outros sites

o select deu certo, porem ainda estou tendo problemas com o update

 

Os campos eu deixei assim:

 

<input type='checkbox' name='condicao".$i."'  align='center'  
									<?php if ($condicao == 'N'){ ?> value='N'  <?php } ?>  
									<?php if ($condicao == 'S'){ ?> value='S' checked /> <?php } ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não tem que especificar dois valores diferentes de acordo com o que está no BD. O valor vai ser sempre 'S', a única diferença vai ser que se o campo tiver o valor 'S', ele vai estar marcado, senão, vai estar desmarcado. O checkbox funciona dessa forma, quando você seleciona ele, o valor dele é enviado para o formulário, senão, a variável correspondente ao campo nem sequer vai ser enviada. Então, basta colocar o valor S, ou até mesmo nenhum valor, que caso a variável correspondente ao campo exista, o valor vai ser S, senão, N.

 

<input type='checkbox' name='condicao".$i."' align='center' value='S' <?php if ($condicao == 'S'){ ?> checked <?php } ?>/>

 

Pra obter o valor:

 

 

if (isset($_POST['campo')) {
   $condicao = 'S';
}

else {
   $condicao = 'N';
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos obrigado pela ajuda, eu estava sendo vencido pela burrice kkkk.

Na verdade eu nunca havia usado checkbox nesse tipo de caso.

Acabei fazendo um pouco diferente o update

 

//Executa enquanto houver Aprovações	
	for ($x=0; $x<$total; $x++){
		
		@$condicao[$i] = $_POST["condicao".$i];
		
			//Verifica se o campo checkbox está vazio
			if(empty($condicao[$i])){
				
				//Não aprova checkbox vazio
				$condicao[$i] = "N";
			
				//Faz o update da nota no BD
				$aprovacao = "UPDATE time_data
					SET status_appro='$condicao[$i]',
					user_appro_fk = $timeapp_id 
					WHERE time_id=".$cod_hora[$i];
				print //$aprovacao ."<BR>";
				$res = mysql_query($aprovacao) or die("O status não foi alterado");
				
				$i++;
				
				continue;
			
			}

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.