Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Input dependendo de outro, com consulta a banco de dados

17-11-2014 15:49

Olá!

Tenho dois campos, empresa e obra em um form.

A ideia é esse form criar um novo usuário, onde esse usuario vai poder ver as empresas e obras que eu cadastrar.

Isso já funciona, mas o que preciso é

Quando preecher que ele pode ver a Empresa A, mostra as obras previamente cadastradas para a Empresa A, (isso já funciona tmb)

Hoje quando eu listo as empresas e obras ele pega todas, teria que ser tipo, eu escolho a empresa A e empresa B, daí quando eu der um TAB ele carrega as obras da empresa A e empresa B apenas.

Outro problema é que é um input onde eu posso adicionar várias empresas, mas acho que isso não seja problema, pois ele pega o id de todas as empresas tmb.

Ex: http://prntscr.com/57cil5

Achei alguns modelos aqui no forum mesmo, mas nenhum dessa complexidade

Agradeço a ajuda!

Abs
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Input dependendo de outro, com consulta a banco de dados

17-11-2014 20:29

Mas o problema que está tendo é na query?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Input dependendo de outro, com consulta a banco de dados

17-11-2014 21:16

na verdade não tenho problema ainda, rs

Apenas quero um caminho ou como posso fazer essa operação de primeiro escolher a empresa depois a obra.

Primeiro eu cadastro uma empresa: Empresa A

Depois cadastro uma Obra para a Empresa A: Obra 1

Depois vou cadastrar um novo Usuário, onde vou selecionar que esse usuário vai poder ver a Empresa A e Obra 1

Só que se eu tenho Empresa B e Obra 2, quando eu selecionar a Empresa A, ele mostra apenas a Obra 1 entendeu? rs

Quando eu falo problema, é que no input eu posso escolher Empresa A e depois Empresa B, pra poder salvar as duas de uma vez no banco entendeu?

Preciso que quando eu escolher uma ou mais empresas ele mostre as obras relacionadas com ele, só nao sei como fazer!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Input dependendo de outro, com consulta a banco de dados

17-11-2014 21:29

Você pode usar esse script Carregar-select-option-baseado-em-outro ... _7397.html

Esse script vai carregar algumas opções de acordo com a option selecionada. Ai você tem que passar algum valor para obter as options relacionadas.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Input dependendo de outro, com consulta a banco de dados

17-11-2014 21:41

Na verdade é exatamente isso que preciso, mas como te falei da palavra problema, era isso:

Eu tenho um "input" que pega com jquery mais de uma empresa no mesmo input e grava suas ids no banco de dados

Como fazer esse esquema mas no input, eu escolho duas empresas por exemplo e ele mostra as obras ligadas a essas duas empresas que selecionei

www.engferrari.com.br
admin
admin

entra la se der por favor e vai em novo usuário, pra entender o que estou falando

As obras são relacionadas as empresas.

Valeu
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Input dependendo de outro, com consulta a banco de dados

18-11-2014 10:51

Não sei se você já tem os valores no input, se tiver, é só usar esse exemplo

<script src="jquery.js"></script>   <script> $(document).ready(function() {   $.post("teste2.php", {valor:$('#empresas').val()}, function(valor){ $('#resultado').html(valor); } )   }); </script>


<input type="text" name="" id="empresas" value="empresa1;empresa2">   <div id="resultado"></div>

No teste2.php onde terá a consulta, segue essa base

<?php $empresa = explode(";", $_POST['valor']); echo $empresa[0]; echo $empresa[1]; ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Input dependendo de outro, com consulta a banco de dados

18-11-2014 11:12

Na verdade ele puxa do banco de dados e fica escondido para usar o auto complete.

Primeiro input: (empresa)

<div class="inteiro">           <input name="blah" type="text" class="campo-cadastro" id="demo_input_local"/>           <?php   //Consulta com a tabela //Selecione tudo de nomedatabela em ordem crescente pelo nome $consulta = mysql_query("SELECT * FROM cliente order by empresa_cl ASC");   ?>           <script type="text/javascript">         $(document).ready(function() {             $("#demo_input_local").tokenInput([                                      <?   while ($dados = mysql_fetch_array($consulta)) {                                                                 echo "{id: '".$dados['id_cl']."', name: '".$dados['empresa_cl']."'}, ";                                                          }                                 ?>                                                          ]);         });         </script>         </div>

Segundo input: (obras)

<div class="inteiro">           <input name="obras" type="text" class="campo-cadastro" id="demo_input_obras" />           <?php   //Consulta com a tabela //Selecione tudo de nomedatabela em ordem crescente pelo nome $consulta = mysql_query("SELECT * FROM obras order by nome_ob ASC");   ?>           <script type="text/javascript">         $(document).ready(function() {             $("#demo_input_obras").tokenInput([                                      <?   while ($dados = mysql_fetch_array($consulta)) {                                                                 echo "{id: '".$dados['id_ob']."', name: '".$dados['nome_ob']."'}, ";                                                          }                                 ?>                                                          ]);         });         </script>         </div>

Não da pra fazer td na mesma página, dependendo de id e o campo obra dependendo do campo empresa?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Input dependendo de outro, com consulta a banco de dados

18-11-2014 11:29

Você pode passar ambos inputs ao mesmo tempo.

<script src="jquery.js"></script>   <script> $(document).ready(function() {   $.post("teste2.php", {campo1:$('#campo1').val(),campo2:$('#campo2').val()}, function(valor){ $('#resultado').html(valor); } )   }); </script>


<input type="text" name="" id="campo1" value="empresa1"> <input type="text" name="" id="campo2" value="empresa2">   <div id="resultado"></div>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Input dependendo de outro, com consulta a banco de dados

18-11-2014 14:10

Não é isso que preciso. :s

O input obra tem que carregar dependendo dos valores que eu colocar no input empresa, entendeu?

vc chegou a acessar o admin admin?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Input dependendo de outro, com consulta a banco de dados

18-11-2014 15:06

Pelo que entendi, você usa uma consulta no carregamento do documento para alimentar essa função que está no segundo input.

$("#demo_input_obras").tokenInput([....]);</script>

Você pode tentar o seguinte, adicionar um evento blur no primeiro input, quando clicar fora do primeiro input ele ativa.

Nesse blur, você vai puxar uma consulta externa, que vai trazer os dados no formato que o jQuery precisa.
echo "{id: '".$dados['id_ob']."', name: '".$dados['nome_ob']."'}, "; 

Seria assim

<script src="jquery.js"></script>   <script> $(document).ready(function() {   $('#campo').blur(function() {   $.post("teste2.php", {campo:$('#campo').val()}, function(valor){ //$('#resultado').html(valor); alert('processando....'); $("#demo_input_obras").tokenInput([valor]); } )   });   }); </script>


<input type="text" name="" id="campo" value="empresa">

Como pode observar, eu puxei tokenInput dentro do blur. Ai lá no teste2.php vai ter a consulta, igual a que já tem atualmente. Só que agora vai entra ali em tokenInput([valor]);
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Input dependendo de outro, com consulta a banco de dados

18-11-2014 15:30

Quase rs,

Eu não uso ainda o primeiro campo pra carregar o segundo, hoje eles são independentes.

O primeiro puxa de uma tabela "cliente" e o segundo input puxa de obras "obras", o que quero é que sejam dependentes, o segundo input do primeiro.

Na tabela obras, tem um campo assim: "cliente_id"

ou seja:
id_ob = 1
nome_ob = Empresa 1
cliente_id = 5

Essa é a relação, quando no primeiro input eu puxar EMPRESA 1 por exemplo, ela pega o id_cl (que é o id dela) e o no input 2 ele só vai poder puxar o "cliente_id" que for igual ao "id_cl" da primeira tabela, neste caso 5

Entendeu?

Em resumo, só pode exibir no segundo input, os dados da tabela obra, que o id for igual aos preenchidos no primeiro input.

Não to imaginando como fazer isso.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Input dependendo de outro, com consulta a banco de dados

18-11-2014 15:36

Foi exatamente o que postei acima na função jquery. Quando você der um blur no primeiro input, vai fazer uma consulta, e alimentar a função jquery que alimenta o segundo input, é só você aplicar os seus dados.
0
A melhor hospedagem para o seu site HostGator!
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Input dependendo de outro, com consulta a banco de dados

18-11-2014 15:38

Foi exatamente o que postei acima na função jquery. Quando você der um blur no primeiro input, vai fazer uma consulta, e alimentar a função jquery que alimenta o segundo input, é só você aplicar os seus dados.

Faz um teste no script que postei logo acima, depois, só aplicar ao seu código.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Input dependendo de outro, com consulta a banco de dados

18-11-2014 17:45

Testei aqui, legal a ideia, ele faz com que quando eu preencher a empresa, clicar fora ele aparece um campo para obras, legal.

Mas to tentando adaptar e não estou conseguindo, antes de ir mais a fundo será que vai dar pra fazer com que:

- após preencher o campo empresa com 3 empresas por exemplo, ele vai carregar as obras que tem o id das empresas carregadas?
- Onde coloco o conteudo? No teste2.php?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Input dependendo de outro, com consulta a banco de dados

18-11-2014 18:26

Primeiro, você carrega 3 empresas, e faz o script enviar os dados para o teste2.php

Agora, faz o script puxar o que foi enviado para o documento atual para ver o formato

$('#resultado').html(valor);   // <div id="resultado"></div>

A partir do formato que os 3 valores foram enviados, vai dar uma idéia de como fazer a consulta, para retornar os dados para a função jquery que alimenta o segundo input.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Input dependendo de outro, com consulta a banco de dados

19-11-2014 10:46

Estou perdido rsrs

No novo_usuario.php, onde tem o form ficou assim:

<script> $(document).ready(function() {   $('#senha').blur(function() {   $.post("teste2.php", {campo:$('#senha').val()}, function(valor){ //$('#resultado').html(valor); alert('processando....'); $("#demo_input_obras").tokenInput([valor]); } )   });   }); </script>

Então quando tira o foco do campo senha acontece a ação, ele cria um campo embaixo do obras, até aí td bem, não é isso que preciso mas vamos ver por onde vai a ação.

Ai no teste2.php coloquei isto:

<? $usuario_id         = $_POST['usuario_id']; $login                = $_POST['login']; $senha                   = $_POST['senha']; $nome                   = $_POST['nome']; $sobrenome_us        = $_POST['sobrenome_us']; $cliente_id               = $_POST['blah']; $obra_id               = $_POST['obras']; $status                   = '1'; echo $nome; echo $cliente_id; ?>

Quis com isso pegar os dados informados no campo nome por ex.

Mas ele não retorna nada de diferente.

Eu ia por passos, mas não consegui nem fazer que o campo blur fosse o empresa, pois ele ja tem um jquery que vc deve ter visto o que faz. Por isso joguei no campo senha por enquanto.

Valeu a força, mas acho que estou mais perdido que cego em tiroteio rs
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Input dependendo de outro, com consulta a banco de dados

19-11-2014 11:28

Vamos começar por testes.

Você está passando
$.post("teste2.php", {campo:$('#senha').val()}, // <input id="senha"....

Habilita essa linha

$('#resultado').html(valor);

E adiciona essa linha documento

<div id="resultado"></div>

Coloca para o blur ser para o primeiro input, o das empresas.
No teste2.php você coloca

echo $_POST['campo']; 

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Input dependendo de outro, com consulta a banco de dados

19-11-2014 11:53

Primeiramente, obrigado pela paciencia, rs

Vamos lá!

Meu script ficou assim:

<script> $(document).ready(function() {   $('#nome').blur(function() {   $.post("teste2.php", {campo:$('#nome').val()}, function(valor){ $('#resultado').html(valor);   alert('processando....'); $("#demo_input_obras").tokenInput([valor]); } )   });   }); </script>

Dai no mesmo arquivo, coloquei assim:

<div id="resultado">aqui está a div resultado</div>   

O teste 2 ficou assim:

<? echo $_POST['nome'];  ?>

Veja o resultado: (tirei a senha pra ver e o Blur ficou no campo nome, pois nao consigo colocar ele no primeiro input que é empresa)

http://www.engferrari.com.br/novo_usuario.php

Da uma olhada no link acima por favor!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Input dependendo de outro, com consulta a banco de dados

19-11-2014 12:24

Você está mandando campo, e tentando recuperar nome

campo:$('#nome').val()
echo $_POST['nome'];
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Input dependendo de outro, com consulta a banco de dados

19-11-2014 13:13

Boa, rs

Agora ele aparece o que eu preencho no campo nome, mas ainda está adicionando mais um campo obra.

O que fazemos agora:?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Input dependendo de outro, com consulta a banco de dados

19-11-2014 13:50

Deveria testar com o id do campo empresas. Ver como o valor do campo é passado para o teste2 para trabalhar com esses valores para gerar a consulta, e alimentar essa função

$("#demo_input_obras").tokenInput([valor]);

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Input dependendo de outro, com consulta a banco de dados

19-11-2014 14:03

então, mas por ele ja ter um comando em jquery, ele nao faz nada.

Eu coloquei assim:

<script> $(document).ready(function() {   $('#demo_input_local').blur(function() {   $.post("teste2.php", {campo:$('#demo_input_local').val()}, function(valor){ $('#resultado').html(valor);   alert('processando...'); $("#demo_input_obras").tokenInput([valor]); } )   });   }); </script>

Onde demo_input_local é o id do campo empresa, mas tenho outro comando nele, que faz aparecer as empresas em laranja, por isso nao da certo:

<script type="text/javascript">         $(document).ready(function() {             $("#demo_input_local").tokenInput([                                      <?   while ($dados = mysql_fetch_array($consulta)) {                                                                 echo "{id: '".$dados['id_cl']."', name: '".$dados['empresa_cl']."'}, ";                                                          }                                 ?>                                                          ]);         });         </script>

Se testar agora, verá q nao acontece nada de blur quando sai do campo empresa:
http://engferrari.com.br/novo_usuario.php

Viu ai? Como será que da pra fazer os dois funcionarem?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Input dependendo de outro, com consulta a banco de dados

19-11-2014 14:08

Vamos por parte. Você está enviando os dados do input da empresa, na div não retorna nada?

Você está testando o script, então a função jquery deve ter somente

function(valor){ $('#resultado').html(valor); }

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Input dependendo de outro, com consulta a banco de dados

19-11-2014 14:18

nao entendi.

Ainda não estou enviando os dados do input empresa, pois o mesmo não permite que eu de o efeito blur no campo empresa, talvez pelo outro jquery que tenho nele.

Coloquei no campo nome apenas para testar, dai quando preencho o campo nome e tiro o foco do mesmo, ele retorna a div resultado com o nome que preenchi, até ai esta funcinando.

O que fiz agora, foi tirar isto do meu campo empresa:

<script type="text/javascript">         $(document).ready(function() {             $("#demo_input_local").tokenInput([                                      <?   while ($dados = mysql_fetch_array($consulta)) {                                                                 echo "{id: '".$dados['id_cl']."', name: '".$dados['empresa_cl']."'}, ";                                                          }                                 ?>                                                           ]);         });         </script>

Assim, o que eu preencho agora no campo empresa passa no teste2 e retorna na div resultado, isso que vc precisa para continuarmos?

Lembrando que no resultado final, vou precisar voltar essa query pro meu campo empresa, pois é ela quem faz o campo puxar os dados do banco de dados e permite que o usuario digite uma letra e liste o nome das empresas com essa letra nesse input entendeu?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17736
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Input dependendo de outro, com consulta a banco de dados

19-11-2014 14:31

Então, o ideal é ter um evento, um botão por exemplo, que vai substituir o blur. É necessário para enviar os nomes das empresas para teste2.

// trocar $('#demo_input_local').blur(function() { // por $('#enviar').click(function() { // <input id="enviar"....

Depois que enviar os nomes das empresas, vai ser necessário gerar uma consulta com as empresas enviadas, e o resultado vai ser tipo assim

<?   while ($dados = mysql_fetch_array($consulta)) {                                                                  echo "{id: '".$dados['id_cl']."', name: '".$dados['empresa_cl']."'}, ";                                                           }                                 ?>

Ou seja, da mesma forma que está hoje, só que essa query vai estar na página teste2 e vai alimentar essa linha na página principal.

$("#demo_input_obras").tokenInput([valor]); // ao invés de $('#resultado').html(valor);

0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado