Jump to content


ADE5's Content

There have been 2 items by ADE5 (Search limited from 27/04/2023)


Ordernar por                Order  

#1005809 Menu Php Com Banco De Dados

Posted by ADE5 on 30/11/2010, 09:42 in PHP

Olá galera,
Estou participando da construção de um sistema que possui vários tipos de usuários, sendo que terei que identificar o usuário na hora do login através do código do login deste usuário (isto tá tranquilo, fiz com sessões). Tenho uma tabela com as permissões que este usuário possui, como tipos de operações que ele tem acesso (cadastros, consultas, liberações etc..).
Este sistema terá um menu lateral com os acessos que este usuário tem (carregado na hora do login, verificando as permissões de acesso na tabela)
Bom meu problema é o seguinte:
Não faço a minima idéia como faço o carregamento deste menu de forma que sejam carregados apenas os menus e submenus que o usuário tem acesso.
Se alguem tiver alguma idéia de como construir isso, ou algum link que me possa ser útil.
Desde já agradeço!

Tentei fazer isso de uma forma que acho não ser a forma correta, pois manjo pouco de PHP.
Faço uma consulta no BD (codigo_formulario_tipo serão os itens do menu e codigo_formulario serão os submenus)
Chamo o menu com include na página.

menu.php
<?php

$consulta = pg_query("SELECT f.codigo_formulario_tipo,f.codigo_formulario, lfl.codigo_formulario,lfl.codigo_login
FROM formulario f
INNER JOIN libera_formulario_login lfl
ON lfl.codigo_formulario = f.codigo_formulario AND lfl.codigo_login = '{$_SESSION['codigo_login']}' ORDER BY f.codigo_formulario ASC");

$conta = pg_num_rows($consulta);
$liberacao = false;
$cadastro = false;
if($conta!=''){ //acrescento o cabeçalho do menu
echo "<ul id=\"DHTMLSuite_tree2\" class=\"DHTMLSuite_tree\">";

while($y = pg_fetch_array($consulta)){
$cft = array($y['codigo_formulario_tipo']); //estes serão os menus
$cf = array($y['codigo_formulario']); //estes serão os submenus

foreach ($cft as $codigo_f_t) {
if($codigo_f_t == '4'){ //se o usuario tiver liberação para este tipo de formulário
if ($liberacao == false){ //evita que o cabeçalho seja carregado toda vez que fizer o loop
$liberacao = true;
echo"<li id=\"node1\" noDrag=\"true\" noSiblings=\"true\" ><a href=\"#\">Administra&ccedil;&atilde;o</a>
<ul>";
}

foreach ($cf as $codigo_f){ //verifica os submenus para ver se possui liberação

if ($codigo_f == '2'){
echo"<li id=\"node2\"><a style=\"cursor:pointer\" id=\"aparece19\">Cadastro do Tipo de usuário</a></li>";
}

if ($codigo_f == '3'){
echo"<li id=\"node2\"><a style=\"cursor:pointer\" id=\"aparece18\">Cadastro de login</a></li>";
}
if ($codigo_f == '21'){
echo"<li id=\"node2\"><a style=\"cursor:pointer\" id=\"aparece20\">Liberação de Formulário</a></li>";
}

}

}

}


foreach ($cft as $codigo_f_t) { //verifica o próximo item do menu
if($codigo_f_t == '1'){
if ($cadastro == false){
$cadastro = true;
echo"<li id=\"node1\" noDrag=\"true\" noSiblings=\"true\" ><a href=\"#\">Cadastro</a>
<ul>";
}
foreach ($cf as $codigo_f){

if ($codigo_f == '1'){
echo"<li id=\"node2\"><a style=\"cursor:pointer\" id=\"aparece1\">Técnico</a></li>";
}
if ($codigo_f == '4'){
echo"<li id=\"node2\"><a style=\"cursor:pointer\" id=\"aparece2\">Qualificação do Técnico</a></li>";
}
if ($codigo_f == '5'){
echo"<li id=\"node2\"><a style=\"cursor:pointer\" id=\"aparece3\">Serviço do Técnico</a></li>";
}
if ($codigo_f == '6'){
echo"<li id=\"node2\"><a style=\"cursor:pointer\" id=\"aparece17\">Tipo de Serviço</a></li>";
}
if ($codigo_f == '7'){
echo"<li id=\"node2\"><a style=\"cursor:pointer\" id=\"aparece13\">Veículo</a></li>";
}
if ($codigo_f == '8'){
echo"<li id=\"node2\"><a style=\"cursor:pointer\" id=\"aparece14\">Tipo de Veículo</a></li>";
}
if ($codigo_f == '10'){
echo"<li id=\"node2\"><a style=\"cursor:pointer\" id=\"aparece4\">Unidade</a></li>";
}
if ($codigo_f == '11'){
echo"<li id=\"node2\"><a style=\"cursor:pointer\" id=\"aparece5\">Produtor</a></li>";
}
if ($codigo_f == '12'){
echo"<li id=\"node2\"><a style=\"cursor:pointer\" id=\"aparece6\">Propriedade</a></li>";
}
if ($codigo_f == '13'){
echo"<li id=\"node2\"><a style=\"cursor:pointer\" id=\"aparece7\">Localidade</a></li>";
}
if ($codigo_f == '14'){
echo"<li id=\"node2\"><a style=\"cursor:pointer\" id=\"aparece8\">Estrada</a></li>";
}
if ($codigo_f == '15'){
echo"<li id=\"node2\"><a style=\"cursor:pointer\" id=\"aparece15\">Tipo de Estrada</a></li>";
}
if ($codigo_f == '16'){
echo"<li id=\"node2\"><a style=\"cursor:pointer\" id=\"aparece9\">Talhão</a></li>";
}
if ($codigo_f == '17'){
echo"<li id=\"node2\"><a style=\"cursor:pointer\" id=\"aparece16\">Propriedade do Talhão</a></li>";
}
if ($codigo_f == '18'){
echo"<li id=\"node2\"><a style=\"cursor:pointer\" id=\"aparece10\">Cultura</a></li>";
}
if ($codigo_f == '19'){
echo"<li id=\"node2\"><a style=\"cursor:pointer\" id=\"aparece11\">Variedade</a></li>";
}
if ($codigo_f == '20'){
echo"<li id=\"node2\"><a style=\"cursor:pointer\" id=\"aparece12\">Safra</a></li>";
}

} //fim foreach ($cf as $codigo_f)

echo"</ul></li>";

} // fim do if($codigo_f_t == '1'){

} //fim do foreach"$codigo_f_t"

} //fim do while

} //fim do if
?>

Isso é uma tentativa, sei que pode ser uma loucura, mas o problema é que não sei qual a forma correta de construir esse tipo de consulta.
Aberto as críticas e comentários.
Obrigado!



#1004767 Duvidas Com Preenchimento De Campos Com Ajax E Php

Posted by ADE5 on 21/10/2010, 09:04 in Ajax

Bom dia Galera!
Meu primeiro post no Webmasters!
Sou novato em programação Web e estou com dúvidas quanto ao preenchimento de campos text de um formulario.
Gostaria de que quando o usuário digitasse o nome de uma pessoa já cadastrada, e após clicar em um input o campo crmv_crea fosse preenchido com dados do bd relativo a pessoa (haverá mais campos tipo qualificação, etc), sei que é possivel fazer isso de forma automática sem usar o input, mas se conseguir fazer desta forma já resolverei meu problema.
Estou usando AJAX e PHP.
Abaixo estão os códigos.

<table border="0px">
<form name="form1" method="post" action="">
<tr>
<td>
<label>Nome:</label>
</td>
<td>
<input name ="nome" id="nome" type="text"/>
</td>
<td>
<button type="button" onclick="Processa();">Processar</button>
</td>
<td>
</td>
</tr>
<tr>
<td>
<label for="crmv_crea">CRMV_CREA:</label>
</td>
<td>
<input type="text" id="resultado" type="text" size="20" readonly="true" />
</td>
</tr>


Ajax e Javascript
<script>
var ajax;
function IniciaAjax(){
var ajax;
if(window.XMLHttpRequest){
ajax = new XMLHttpRequest();
}else if (window.ActiveXObject){
ajax = new ActiveXObject("Msxml2.XMLHTTP");
if(!ajax){
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else{
alert("Seu navegador não possui supote com essa aplicação!");
}
return ajax;
}

function Processa()
{
ajax = IniciaAjax();
if(ajax)
{
ajax.onreadystatechange = function(){
if(ajax.readyState ==4){
if(ajax.status ==200){
document.getElementById("resultado").value = ajax.responseText;
}else{
alert(ajax.statusText);
}
}
}
nome = document.getElementById("nome").value;

dados = 'nome='+nome;

ajax.open('POST','consulta_crmvcrea.php','true');
ajax.setRequestHeader('Content-Type','aplication/x-www-form-urlencoded');
ajax.send(dados);
}
}
</script>


consulta_crmvcrea.php

<?php
$gmtDate = gmdate("D, d M Y H:i:s");
header("Expires: {$gmtdate} GMT");
header("Last-Modified: {$gmtDate} GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Progma: no-cache");
include('inc/conexao.php');
$nome = $_POST['nome'];
$consulta = pg_query("SELECT crmv_crea FROM tecnico WHERE nome='$nome'");
$y = pg_fetch_array($consulta);{
$preenche = $y["crmv_crea"];

echo $preenche;
}
?>




IPB Skin By Virteq