Ir para conteúdo

POWERED BY:

Arquivado

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

Milks

Mostrar dados do input text em um select multiple

Recommended Posts

Galera, preciso de ajuda!

Tenho uma página para cadastrar data e horário de visitas, ou seja, esses valores podem ocorrer mais de uma vez e quero exibir uma lista desses dados num select multiple antes de inseri-los no banco.

Data e Hora são digitados em dois input text e preciso que, quando o usuário digitar os dois e clicar no botão 'Adicionar', esses dois valores entrem nesse select multiple. O usuário poderá digitar outra data e outra hora e adicionar na lista também. Esses dados deverão aparecer abaixo do anterior, e assim por diante.

O código tá aí embaixo. Da forma que tá, tá dando erro lá no select.

Acho que a variável visita tem que ser um vetor pra ir armazenando os valores. Só não sei como fazer isso.

 

Agradeço desde já!

 

CODE

<TR><TD colSpan="6" style="font-family:Verdana;font-size:XX-Small;width:620px;"> <center>VISITAS</center> </TD></TR><TR><TD colspan="3" style="font-family:Verdana;font-size:XX-Small;width:368px;"> <center>Data (dd/mm/aa)</center><center><input id="tabcampoentrev" type="text" name="data" value="<?php &data; ?>" tabindex="3"></center> </TD><TD colspan="3" style="font-family:Verdana;font-size:XX-Small;width:368px;"> <center>Horário</center><center><input id="tabcampoentrev" type="text" name="hora" value="<?php $hora; ?>" tabindex="4"></center></TD></TR><TR><TD colspan="6"><input type="submit" name="add" value="Adicionar Visita" onclick="exibir()"/><input type="button" name="del" value="Remover Visita" /><BR>

<select multiple="multiple" name="visita[]" size="10" style="height:56px; width:200px">

<option value="">

<?php

$data=$_POST['data'];

$hora=$_POST['hora'];

$visita=$data." - ".$hora;

echo $visita;

?>

</option>

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já consegui mostrar uma lista de datas e horas dentro do select multiple, mas preciso agora inserir no banco. Como faço pra pegar os valores desses options via POST pra inserir no banco?

 

Segue código:

 

CODE

<script>

function insertSelected(){

var data=document.getElementById("data");

var hora=document.getElementById("hora");

var x=document.getElementById("visitas"); //retorna o objeto select

var options=x.getElementsByTagName("option"); //pega a lista de options do select

if((data.value!="")&&(hora.value!="")){

var y=document.createElement('option'); //cria um novo elemento option

y.text=data.value+" "+hora.value; //seta o texto do elemento option

data.value="";

hora.value="";

y.value=options.length; //seta o valor do elemento option

try{

x.add(y,null); // adiciona um novo option no fim da lista para navegadores complacentes

}

catch(ex){

x.add(y); // adiciona um novo option no fim da lista para o IE

}

}

 

}

 

function removeLastOption(){

var x=document.getElementById("visitas")

if (x.selectedIndex>=0){

x.remove(x.selectedIndex);

}

}

</script>

 

//FORM que envia atraves de POST...

 

<TR>

<TD colSpan="6" style="font-family:Verdana;font-size:XX-Small;width:620px;">

<center>VISITAS</center>

</TD>

 

</TR>

<TR>

<TD colspan="3" style="font-family:Verdana;font-size:XX-Small;width:368px;">

<center>Data (dd/mm/aaaa)</center>

<center><input type="text" id="data" name="DATA_VISITA" value="" tabindex="3" style="font-family:Verdana;font-size:XX-Small;width:80px" onKeyUp="DigitaData(this)" onBlur="DigitaData(this)" autocomplete="OFF"></center>

</TD>

<TD colspan="3" style="font-family:Verdana;font-size:XX-Small;width:368px;">

<center>Horário (hh:mm)</center>

<center><input type="text" id="hora" name="HORA_VISITA" value="" tabindex="4" style="font-family:Verdana;font-size:XX-Small;width:80px" onKeyUp="DigitaHora(this)" onBlur="DigitaHora(this)" autocomplete="OFF"></center>

</TD>

</TR>

<TR>

<TD colspan="6">

<center>

<input type="button" name="add" value="Adicionar Visita" onclick="insertSelected()"/>

<input type="button" name="del" value="Remover Visita" onclick="removeLastOption()"/><BR>

<select multiple="multiple" id="visitas" name="VISITA[]" size="10" style="height:56px; width:200px">

</select>

<BR>

 

</TD>

</center>

</TR>

 

 

Valeuu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

na p@agina que recebe os dados

 

faça

 

print_r($_POST); exit;

 

Coloquei print_r($_POST['VISITA']); mas ele mostrou Array ( [0] => 0 [1] => 1 )

Gostaria de pegar os valores que eu inseri.

Exemplo:

[0] => 30/07/2008 09:00

[1] => 31/07/2008 11:00

 

Obrigadaa!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pro submit "entender" que existem dados dentro de um select multiple, esses dados precisam estar selecionados.. daí da função js abaxio getValoresSelect()..

 

depois só concatenar o select multiple com o data/hora..

 

taí um exemplo abaixo.. testa e diga se funcionou..

 

<script language="javascript" type="text/javascript">
function getValoresSelect(idSelect)
{
	el = document.getElementById(idSelect);
	for(i = 0; i < el.options.length; i++)
	{
		el.options[i].selected = true;
	}
}
</script>

<?php
$visitas = Array();

$data = $_POST['data'];
$hora = $_POST['hora'];

$selectVisitas = $_POST['selectVisitas'];
if (sizeof($selectVisitas) > 0)
{
	foreach ($selectVisitas as $visitasExistentes)
		$visitas[] = $visitasExistentes;
}

if (!empty($_POST['data']) && !empty($_POST['hora']))	
	$visitas[] = $data." - ".$hora;
?>
<form name="frmVisita" id="frmVisita" action="" method="post" onsubmit="getValoresSelect('selectVisitas')">
Data: <input type="text" name="data" id="data" />     Hora: <input type="text" name="hora" id="hora" />
<br />
<select multiple="multiple" id="selectVisitas" name="selectVisitas[]" size="10" style="height:56px; width:200px">
	<?php
	foreach ($visitas as $visita)
	{
	?>
		<option value="<?=$visita?>"><?=$visita?></option>
	<?php
	}
	?>
</select>
<br/>
<input type="submit" name="submit" value="testar">
</form>

 

[x]´s

 

--

Rafael Mussi

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.