Ir para conteúdo

POWERED BY:

Arquivado

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

wagnertramos

Setar cidade origem e destino e setar valor

Recommended Posts

Boa noite,

 

Sou iniciante no PHP, mas já trabalho algum tempo com sites e CMSs...

E, num dos meus sites, necessito criar uma página onde o usuário escolherá o roteiro para entrega de algum produto, fazendo então a escolha de dois campos (cidade/bairro de origem) e (cidade/bairro de destino).

 

E, deve aparecer automaticamente o valor da entrega logo abaixo.

 

Bom... como posso fazer isso...???

 

muito obrigado, e desculpe se estou colocando o tópico no lugar errado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi @Wagner! Seja bem vindo ao forum.

 

Olha so, baseado na sua situaçao, creio que precisaremos:

* 1 banco de dados para armazenar os trajetos e seus respectivos valores;

* 1 pagina com o formulario de consulta:

- campo select com as origens (vindas do db)

- campo select com os destinos (vindos do db)

- botao submit

e o codigo php para buscar o valor da tarifa no db de acordo com o trajeto especificado.

* 1 pagina pra voce poder cadastrar novos trajetos e seus respectivos valores.

 

O que voce ja tem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, primeiramente, obrigado pela resposta realmente rápida...

 

Eu trabalho com CMS Drupal, então trabalho mysql...

Mas gostaria de uma coisa mais simples, tipo, não é necessário um formulário para inserir mais dados, apensa buscar os valores cadastrados manualmente.

o que preciso é exatamente o código php para buscar esses valores, e gostaria de se possivel setar o valor da entrega após a seleção do segundo campo (destino), sem a necessidade de clicar em um botão.

 

Mais uma vez, obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hummm, entendo.

 

Neste caso, poderia mesclar php com javascript, tipo ao carregar a pagina o php coleta os dados do db e passa pro javascript todos os registros, que monta um array que fica a disposição dos dois selects, no evento onchange do select de destino, verifica se o trajeto existe e se sim, atualiza o valor num input text readonly, por exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hummm, entendo.

 

Neste caso, poderia mesclar php com javascript, tipo ao carregar a pagina o php coleta os dados do db e passa pro javascript todos os registros, que monta um array que fica a disposição dos dois selects, no evento onchange do select de destino, verifica se o trajeto existe e se sim, atualiza o valor num input text readonly, por exemplo.

 

 

Ok, devo então usar um array junto ao código java, mas qual código devo usar??

não sei exatamento como começar...

como comentei anteriormente, trabalho com CMS Drupal, então, não crio códigos, tenho apenas conhecimento para alterá-los quando necessário, mas uma página com esse conteúdo não sei criar.

 

Mais uma vez, muito obrigado por divulgar seus conhecimentos!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!

 

Poste ai a estrutura da sua tabela mysql { ja criou ne? } que posso te ajudar a comecar o codigo php.

 

 

Ok... gostaria de inserir os dados dentro de apenas uma tabela,então ficou assim...

ID | Bairro | Cidade | Valor

 

ID - número identificador (chave primária)

Bairro

Cidade

Valor - valor em reais referente ao local

 

Bom, são apenas esses campos. Sei que vai haver duplicidade de dados no campo Cidade, mas não tem problema, pois as entregas serão em apenas alguns bairros e em poucas cidades.

 

Mais uma vez, obrigado!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!

 

Acredito que apenas uma base e neste formato nao vai suprir a sua necessidade, eu sugiro o uso de duas bases:

 

1) Base locais, para cadastro dos destinos e origens:

 

id - int (auto)

cidade - text

bairro - text

 

Nesta poderia ter cidades repetidas com bairros destintos, e seria usada como base de registros para os seçects do form.

 

2) Base trajetos, para cadastro dos trajetos e seus respectivos valores:

 

id - int (auto)

origem - int

destino - int

valor - double

 

Aqui voce podera registrar os id de origem e destino, respectivamente, e o valor do trajeto.

 

Concluindo:

 

Os dois selects puxariam os registros da tabela locais, os options seriam gerados pelo php, vindos do db.

Criaria uma funcao dentro do java com todas as possibilidades de trajetos, os dados viriam do db, tb capturados pelo php da base trajetos.

No onchange dos seletcs poderiamos chamar a funcao java para retornar o valor, se o trajeto estiver disponivel, algo tipo:

 

<select name="destino" onchange="Busca_Valor(origem.value, destino.value)"><?php Echo $Destino_OPT; ?></select>

 

O valor voce pode por num campo ou dar um alert na tela. E isso ai...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!

 

Acredito que apenas uma base e neste formato nao vai suprir a sua necessidade, eu sugiro o uso de duas bases:

 

1) Base locais, para cadastro dos destinos e origens:

 

id - int (auto)

cidade - text

bairro - text

 

Nesta poderia ter cidades repetidas com bairros destintos, e seria usada como base de registros para os seçects do form.

 

2) Base trajetos, para cadastro dos trajetos e seus respectivos valores:

 

id - int (auto)

origem - int

destino - int

valor - double

 

Aqui voce podera registrar os id de origem e destino, respectivamente, e o valor do trajeto.

 

Concluindo:

 

Os dois selects puxariam os registros da tabela locais, os options seriam gerados pelo php, vindos do db.

Criaria uma funcao dentro do java com todas as possibilidades de trajetos, os dados viriam do db, tb capturados pelo php da base trajetos.

No onchange dos seletcs poderiamos chamar a funcao java para retornar o valor, se o trajeto estiver disponivel, algo tipo:

 

<select name="destino" onchange="Busca_Valor(origem.value, destino.value)"><?php Echo $Destino_OPT; ?></select>

 

O valor voce pode por num campo ou dar um alert na tela. E isso ai...

 

 

Hummm... muito interessante, já to aprendendo...

 

mas seguinte... não é necessário criar todos os trajetos possíveis, pois o valor será calculado através da soma dos valores dos locais, ou seja, tanto faz se é origem ou destino, o valor será a soma dos dois valores.

Por isso gostaria de algo mais simples, não sendo necessário a segunda tabela...

 

O que você acha???

 

Obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi!

 

Fiz um pequeno script de exemplo:

 

Estrutura da base:

 

Campo - Tipo

ID - smallint(5)

Bairro - tinytext

Cidade - tinytext

Valor - double(7,2)

 

Codigo:

 

<?php
/**********
# COLETA #
**********/

$SQL               = 'SELECT * FROM locais';
$Consulta          = mysql_query($SQL) OR Die ('Erro (Codigo '.mysql_errno().') MySQL: '.mysql_error());
$Registros         = mysql_num_rows($Consulta);

If ($Registros)
  { // OPTIONS
    $OPT          = '<option value="0">Selecione um registro</option>';
    While ($Dados = mysql_fetch_assoc($Consulta))
          { $OPT .= '<option value="'.$Dados['Valor'].'">'.$Dados['Bairro'].'/'.$Dados['Cidade'].'</option>'; }
  }
?>
<script type="text/javascript">
function Atualizar_Valor()
{
var Origem         = Math.abs(document.Form.Origem.value);
var Destino        = Math.abs(document.Form.Destino.value);
var CampoValor     = document.Form.Valor;

CampoValor.value   = 'R$ '+Math.abs(Origem + Destino);
}
</script>
<form name="Form">
Origem: <select name="Origem" onChange="Atualizar_Valor()"><?php Echo $OPT; ?></select><br>
Destino: <select name="Destino" onChange="Atualizar_Valor()"><?php Echo $OPT; ?></select><br>
Valor: <input type="text" name="Valor" value="R$ 0.00" ReadOnly>
</form>

Espero que ajude a desenvolver o seu.

Qualquer duvida, poste ai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi!

 

Fiz um pequeno script de exemplo:

 

Estrutura da base:

 

Campo - Tipo

ID - smallint(5)

Bairro - tinytext

Cidade - tinytext

Valor - double(7,2)

 

Codigo:

 

<?php
/**********
# COLETA #
**********/

$SQL               = 'SELECT * FROM locais';
$Consulta          = mysql_query($SQL) OR Die ('Erro (Codigo '.mysql_errno().') MySQL: '.mysql_error());
$Registros         = mysql_num_rows($Consulta);

If ($Registros)
  { // OPTIONS
    $OPT          = '<option value="0">Selecione um registro</option>';
    While ($Dados = mysql_fetch_assoc($Consulta))
          { $OPT .= '<option value="'.$Dados['Valor'].'">'.$Dados['Bairro'].'/'.$Dados['Cidade'].'</option>'; }
  }
?>
<script type="text/javascript">
function Atualizar_Valor()
{
var Origem         = Math.abs(document.Form.Origem.value);
var Destino        = Math.abs(document.Form.Destino.value);
var CampoValor     = document.Form.Valor;

CampoValor.value   = 'R$ '+Math.abs(Origem + Destino);
}
</script>
<form name="Form">
Origem: <select name="Origem" onChange="Atualizar_Valor()"><?php Echo $OPT; ?></select><br>
Destino: <select name="Destino" onChange="Atualizar_Valor()"><?php Echo $OPT; ?></select><br>
Valor: <input type="text" name="Valor" value="R$ 0.00" ReadOnly>
</form>

Espero que ajude a desenvolver o seu.

Qualquer duvida, poste ai.

 

 

Opa!!!!!!!

 

Nossa... muito obrigado, ainda naum testei, so conseguerei testar semana que vem,

mas assim que fizer posto aqui o meu aprendizado (ou dúvida... heheeh)...

 

muito obrigado!!

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.