• 0
Sign in to follow this  
milka

Valor Do Select

Question

Olá,

gostaria de saber como eu faço pra pegar o valor do item selecionado em um select(combo).

Com eu jogo esse valor em uma variavel para fazer um select * from usando ela...?

[]s

Share this post


Link to post
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Neste código estou tentando fazer com que selecionado um item no primeiro sejam retornados apenas itens relacionados a este no segundo...

No caso deste código, onde ficaria essa variavel ?

Nossa, já pesquisei bastante sobre isso e ainda não consegui fazer, uns falam em ajax outros com apenas javascript e eu nunca trabalhei com nada disso. Levando em consideração que estaou a apenas 3 semanas no PHP...Enfim já tentei com ajax, com javascript e cheguei nesse código...

Mas não estou conseguindo filtrar apenas as tarefas referentes ao projeto selecionado...

<?
include "conectar.php";
?>
<html>
&lt;script Language="JavaScript">
function getStates(what) {
if (what.selectedIndex != '') {
var estado = what.value;
document.location=('hello.php?estado='+ estado);
}
}
</Script>
<body>
<select name="select" onChange="getStates(this);">
<option value="">Selecione um projeto</option>
<?php
$dados= pg_query($connect, "SELECT nm_projeto, id_projeto FROM tb_projeto ORDER BY id_projeto");
while($campo = pg_fetch_array($dados))
{
?>
<option value="<?echo $campo['id_projeto']?>"><? echo $campo['nm_projeto']?></option>
<? } ?>

</select>
<?php
$dados_tarefa = pg_query($connect, "SELECT * FROM tb_tarefa WHERE ORDER BY id_tarefa");

?>
<select name="cidade" size=1>
<option value="">selecione uma tarefa</option>
<?
while($campo_tarefa = pg_fetch_array($dados_tarefa))
{
// $city = $campo_tarefa[1];
// $id2 = $campo_tarefa[0];

?>

<option value="<? echo $campo_tarefa['id_tarefa']?>"><? echo $campo_tarefa['nm_tarefa']?></option>
<?
}
?>

</select>
</body>
</html>[/codebox]

Share this post


Link to post
Share on other sites
  • 0

Não entendi dieiro, mas veja se é mais ou menos isto que você quer:


<?
include "conectar.php";
?>
<html>
<script Language="JavaScript">
function getStates(what) {
if (what.selectedIndex != '') {
var projeto = what.value;
document.location=('hello.php?projeto='+ projeto);
}
}
</Script>
<body>
<select name="projeto" onChange="getStates(this.value);">
<option value="">Selecione um projeto</option>
<?php
$projeto = isset($_GET['projeto']) ? $_GET['projeto'] : "";

$dados= pg_query($connect, "SELECT nm_projeto, id_projeto FROM tb_projeto ORDER BY id_projeto");

while($campo = pg_fetch_array($dados))
{
echo "<option value=\"". $campo['id_projeto']."\"". (($campo['id_projeto'] == $projeto) ? " selected=\"true\"" : "") .">". $campo['nm_projeto'] ."</option>\r\n";
}
?>
</select>

<?php
if ($projeto != "")
{
$dados_tarefa = pg_query($connect, "SELECT * FROM tb_tarefa WHERE campo = '". $projeto ."' ORDER BY id_tarefa");

echo "
<select name=\"cidade\">
<option value=\"\">selecione uma tarefa</option>";

while($campo_tarefa = pg_fetch_array($dados_tarefa))
{
// $city = $campo_tarefa[1];
// $id2 = $campo_tarefa[0];

echo "
<option value=\"". $campo_tarefa['id_tarefa']."\">". $campo_tarefa['nm_tarefa'] ."</ option>\r\n";
}
echo "</select>";
}
?>
</body>
</html>
[/codebox]

[]'s

Share this post


Link to post
Share on other sites
  • 0

Consegui finalmente !!!

Aí mais ainda esta com umas falhas...

Quando eu seleciono um Projeto a pagina atualiza pra chamar as tarefas relacionadas a este e quando atualiza apaga todas as informações que preenchi nos outros campos e não fica o nome do projeto selecionado...voltando assim para a frase "Selecione um Projeto"

O código esta assim:

<?
 //Inicia a sessão
session_start();
include "conectar.php";
$login_colaborador = $_SESSION['login'];

?>

<HTML>
&lt;script Language="JavaScript">
function getStates(what) {
if (what.selectedIndex != '') {
var estado = what.value;
document.location=('andamento.php?estado='+ estado);
}
}
</Script>


<BODY>
<table width="55%" align="center" border="0" height="210" >

<form method="POST" action="acao_andamento.php">

<TR>

<TD align="right" valign="bottom" ><font face = "verdana" size="2"><b>PROJETO:</b></font></TD>
<TD valign="bottom">

<select name="select" onChange="getStates(this);">

<?

$selecionado = $_GET['estado'];

?>

<option value="">Selecione um Projeto</option>

<?php

$dados= pg_query($connect, "SELECT nm_projeto, id_projeto FROM tb_projeto ORDER BY id_projeto");

while($campo = pg_fetch_array($dados))
{
?>
<option value="<?echo $campo['id_projeto']?>"><? echo $campo['nm_projeto']?></option>
<? } ?>
</select>
</TD>
</TR>
<TR>
<TD align="right" valign="bottom"><font face = "verdana" size="2"><b>TAREFA:</b></font></TD>
<TD valign="bottom">
<select name="cidade" size=1>
<option value="">Selecione uma tarefa</option>
<?
$dados_tarefa = pg_query($connect, "SELECT * FROM tb_tarefa WHERE id_projeto = '$selecionado' ORDER BY id_tarefa");
while($campo_tarefa = pg_fetch_array($dados_tarefa))
{
?>
<option value="<? echo $campo_tarefa['id_tarefa']?>"><? echo $campo_tarefa['nm_tarefa']?></option>
<?
 }
?>
</select>
</TD>
</TR>
      <TD align="right" valign="bottom" ><font face = "verdana" size="2"><b>COLABORADOR:</b></font></TD>

      <TD valign="bottom"><select name="combo_colaborador_andamento"  lenght="50" disabled="">

                 <?php

                      $dados= pg_query($connect, "SELECT nm_colaborador FROM tb_colaborador WHERE UPPER(login)= UPPER('$login_colaborador') ORDER BY id_colaborador");

                      while($campo = pg_fetch_array($dados))
                      {
                      ?>

                      <option value="<?echo $campo['nm_colaborador']?>"><? echo $campo['nm_colaborador']?></option>

                      <? } ?>

         </select>
      </TD>
</TR>


<TR>
    <TD align="right" valign="bottom"><font face = "verdana" size="2"><b>DATA:</b></TD>
    <TD valign="bottom"><input type = "text" name="data_andamento" value="<?php echo(date("d/m/Y"));?>" size="22"  length="20" ></font></TD>
</TR>

<TR>
    <TD align="right" valign="bottom"><font face = "verdana" size="2"><b>HORA INÍCIO:</b></TD>
    <TD valign="bottom"><input type = "text" name="hora_inicio_andamento" value="<?php echo(date("h:i"));?>" size="22"  length="20" ></font></TD>
</TR>

<TR>
    <TD align="right" valign="middle"><font face = "verdana" size="2"><b>COMENTÁRIO:</b></TD>
<TD><textarea cols="50" rows="" name="" wrap=""></textarea></TD>
</TR>

<TR>
    <TD align="right" valign="bottom"><font face = "verdana" size="2"><b>HORA FIM:</b></TD>
    <TD valign="bottom"><input type = "text" name="hora_fim_andamento" size="22"  length="20" ></font></TD>
</TR>



</table>

</form>

</BODY>
</HTML>

[]s

Edited by milka

Share this post


Link to post
Share on other sites
  • 0

Veja o que eu coloquei no primeiro select:

(($campo['id_projeto'] == $projeto) ? " selected=\"true\"" : "")

Isso é tipo um if. Se o valor vindo da URL for igual ao atual do laço while, aparece selected="true".

[]'s

Share this post


Link to post
Share on other sites
  • 0

valeu !!! Menos um...rsrsrs ;)

Agora falta apenas eu descobrir alguma forma de não apagar meus dados quando atualizo a página..

Acho que dessa forma não dá não é? !?

Voce tem alguma ideia ou só com ajax é que não acontece isso ?

[]s

Share this post


Link to post
Share on other sites
  • 0

A solução mais simples seria colocar esses select's no começo do formulário, para que sejam preenchidos primeiro.

Outra forma é usando sessões. Nesse caso, você teria que mudar a função JS. No lugar de location.href colocar nome_fom.submit(); assim o formulário será enviado ao mudar a opção. Daí você teria que fazer:

$_POST['campo'] = $_SESSION['campoe'];
Mas teria de haver umna validação, pois, se somente o select for preenchido, terá de voltar à página do formulário. No form, teria de fazer isto nos values:
<input type="text" value="<?php echo (isset($_SESSION['campo']) ? $_SESSION['campo'] : ""); ?>" />

...para que o formulário volte com os valores dos campos já preewnchidos. ;)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this