Ir para conteúdo

Arquivado

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

Apenas Eu

Trocar o Value com o JS

Recommended Posts

Olá tudo bem?

 

Eu precisava de uma ajudinha!

 

Eu tenho um formulário e queria substituir o valor da tag value por outro da mesma linha do banco de dados.

 

Eu quero substituir o cód que faz o sistema funcionar pelo nome da linha que a pessoa selecionou.

 

Imagina-se que:

 

cod/nome

1 - Laranja

2 - Maça

3 - Feijão

 

Daí no cód seria:

<form....>
<select ... >
<options value="1>Laranja</option>

Ao clicar no botão de enviar do formulário, eu preciso trocar o valor "1" por "Laranja". Como eu posso fazer isso? Eu preciso de um exemplo básico e pratico para pelo menos tentar adaptar ao meu projeto.

 

Obrigado :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vc não consegue fazer essa troca já na hora de montar o html ?

 

Lá com o server-side... não sei como vc monta a tag.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola William obrigado pelo retorno!

 

Eu nem sei como fazer isso rapaiz.

 

É que o sistema em que eu me baseei (PHP + SQL) só funciona corretamente se o campo abrir o cod na tag value.

A estrutura do HTML é essa:

<form action="" method="post" id="" class="">
<select name="" id="">
<option value="">-- Escolha a Quantidades --</option>
//A partir daqui o valor de "value" é inserido via PHP e Banco de Dados, assim com a "Quantidade" selecionada
<option id="" value="" >(Quantidade)</option> 
</select>
<button type="submit" class="" >Incluir no Orçamento</button>
</form>

Suponhamos que tudo estivesse em html seria algo assim:

<form action="enviar.php" method="post" id="" class="">
<select name="" id="">
<option value="">-- Escolha a Quantidades --</option>
<option id="" value="1" >(500) Quinhentos</option> 
<option id="" value="2" >(1000) Mil</option> 
<option id="" value="3" >(2500) Dois e Quinhentos</option> 
<option id="" value="4" >(5000) Cinco Mil</option> 
</select>
<button type="submit" class="" >Incluir no Orçamento</button>
</form>

Só com o HTML (e o PHP) quando apertamos o botão do Enviar, ele envia o valor do "value". Mas o valor alí é apenas do Cód da quantidade. Se eu colocar a quantidade real alí. Ele não funciona por ser um combo-box.

O pessoal do PHP me deu a dica que preciso fazer um OnChange, mas não sei como fazer isso, embora eu ja tenha pesquisado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi muito bem.. mais você disse que value não passa? Como assim?

 

Você pode passar perfeitamente esses nomes no value, tipo:

<options value="Laranja">Laranja</option>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa...

Então o que acontece é que é uma listagem combobox. Se não aparece o value da quantidade, não aparece os tamanhos disponíveis para aquela quantidade. Tipo estado cidade. Cada estado tem seu id (código). Se não abre a id (o código) do estado, não carrega as cidades, entendeu?

 

Na verdade eu troquei um outro sistema que tinha feito achando que com esse não aconteceria isso, mas não teve jeito

 

 

Olá!

Eu achei isso aqui que pode ser que me ajude. Digamos que ele até faz o que eu quero, mas não funciona no value do input.

ORIGINAL

<!DOCTYPE html><html><body><p id="demo">Mr Blue has a blue house and a blue car.</p><button onclick="myFunction()">Try it</button><script>function myFunction() {    var str = document.getElementById("demo").innerHTML;     var res = str.replace(/blue/g, "red");    document.getElementById("demo").innerHTML = res;}</script></body></html>

Adaptada por mim:

<!DOCTYPE html><html><body><input id="demo" value="blue"><button onclick="myFunction()">Try it</button><script>function myFunction() {    var str = document.getElementById("demo").innerHTML;     var res = str.replace(/blue/g, "red");    document.getElementById("demo").innerHTML = res;}</script></body></html>

Se eu faço uma input text com id "demo" ela não troca ali a palavra assim como acontece na tag <p>. Por que será?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi funciona o combo mas não envia para o orçamento, é isso?

Ou no orçamento aparece a id da quantidade.é isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi funciona o combo mas não envia para o orçamento, é isso?

Ou no orçamento aparece a id da quantidade.é isso?

 

Isso mesmo... no orçamento aparece a id da quantidade

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa a demora pra responder...

 

Então, não tem calculo, ele seleciona a linha do banco de dados. Ex.

 

cod_quantidade/quantidade

1 / 500

2 / 1000

etc

 

Daí eu puxo os valores com o banco de dados

<option value="<?php echo $cod_quantidade ?>"> == <?php echo $quantidade ?> == </option> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, aí é que está o problema. No orçamento ele pega o cód daí no orçamento vai o cód e não o valor realmente selecionado.

 

Eu vou postar aqui o html (com o PHP) e o site para você poder fazer o teste

<select name="quantidade" id="cod_quantidade" class='form-control'>
			<option value="">-- Escolha a Quantidades --</option>
						<?php 
			while ( $row5 = mysql_fetch_assoc( $res ) ): 
			$cod5 = $row5['cod_quantidade'];
			$sigla = $row5['sigla']; ?>
				<option id="<?php echo $cod5 ?>" value="<?php echo "$cod5"?>" ><?php echo $sigla?></option> 
					<?php endwhile; ?>
		</select>

link do site que usa o sistema: http://dcsdesenvolvimento.com.br/detalhes/adesivos-personalizados-sulfite-campo-mourao/220

Compartilhar este post


Link para o post
Compartilhar em outros sites

O valor que deseja passar, está na variavel "sigla" ?

 

Caso sim, basta trocar e ficar assim:

<option id="<?php echo $cod5 ?>" value="<?php echo $sigla ?>" ><?php echo $sigla?></option>

Assim que der submit, o valor sera o mesmo que está aparecendo

 

 

Caso não for isso, você pode fazer uma função para trocar o valor.

Exemplo:

function trocarValor($num)
{
   if($num == 1)
     return "Laranja";
}

echo trocarValor(1);

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

O valor que deseja passar, está na variavel "sigla" ?

 

Caso sim, basta trocar e ficar assim:

<option id="<?php echo $cod5 ?>" value="<?php echo $sigla ?>" ><?php echo $sigla?></option>

 

Exatamente!! Mas então, acontece se eu uso a variavel "sigla" no value o combobox não funciona direito. Ele não carrega todos os dados de tamanhos. Por isso a ideia era tentar trocar por outra variavel da mesma linha ao clicar no botao de enviar

Compartilhar este post


Link para o post
Compartilhar em outros sites

mude o select:

conexão com do bd.

$query = "SELECT cod_quantidade,sigla FROM suatabela ORDER BY cod_quantidade ";

$res1 = mysql_query($query);

while($row1=mysql_fetch_array($res1))

{

$cod_=$row1["cod_quantidade"];

$nome_sigla=$row1["sigla"];

if($cod == $cod_quantidade)

$s="selected";

else

$s="";

echo "<option $s value='$cod>$nome_sigla</option>";

mysql_close ($sql);

}

?>

mysql_close, fecha a conexão, não precisa colocare conexão com bd se você não estiver conectado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então eu tentei fazer o que vc sugeriu, só que mais ou menos do jeito que eu tinha feito mas o resultado foi igual

 

Fiz assim:

//Para que a tabela quantidade/tamanho funcione
$sql5 = "select cod_quantidade, sigla from quantidade where relacionar='$relacionar' ORDER BY cod_quantidade";
$query5       = mysql_query($sql5);
$row5         = mysql_fetch_array($query5);
$res = mysql_query( $sql5 );
$relacionar = $row5['relacionar']; //Esse é o campo que liga uma tabela à outra
//
<option value="">-- Escolha a Quantidades --</option>
<?php 
while ( $row5 = mysql_fetch_array( $res ) ): 
$cod5 = $row5['cod_quantidade'];
$sigla = $row5['sigla']; 
if($cod == $cod_quantidade)
$s="selected";
else 
$s="";
?>
<option <?php echo $s?> value="<?php echo "$cod5"?>" ><?php echo $sigla?></option> 
<?php endwhile; ?>
</select>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá

de onde vem o $relacionar?

Pelo Site que mostrou vc. tem três selects?

Produtos / quantidade / tamanhos ?

 

$relacionar relaciona a quantidade para o produto ou o tamanho para a quantidade

 

Suas tabelas são assim?

PRODUTOS: id/produto

QUANTIDADE: cod_quantidade/sigla

TAMANHO: id/tamanho

 

em qual tabela fica o campo relacionar

 

veja assim:

<?php

$sql5 = "SELECT cod_quantidade, sigla FROM quantidade ORDER BY cod_quantidade";

$query5 = mysql_query($sql5);

$row5 = mysql_fetch_array($query5);

$res = mysql_query( $sql5 );

$relacionar = $row5['relacionar']; //Esse é o campo que liga uma tabela à outra

?>

<option value="">-- Escolha a Quantidades --</option>

<?php

while ( $row5 = mysql_fetch_array( $res ) ):

$cod5 = $row5['cod_quantidade'];

$sigla = $row5['sigla'];

if($sigla == $sigla)

$s="selected";

else

$s="";

echo "<option $s value='$cod5>$sigla</option>";

?>

</select>

assim vai imprimir no select TODAS AS quantidades

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola... desculpa de novo a demora é que eu precisei dar uma saidinha...

Então isso mesmo, eu inclui nas duas tabelas o relacionar. É só assim que eu sei fazer hehehe, para juntar duas tabelas.

 

Eu vou tentar fazer desse jeito agora e te falo... :)

--

Bom...Eu fiz aqui o que você falou. O Select realmente imprimiu todas as quantidades da tabela, mas ainda se deixar o "value" com o $cod5 continua enviando os cods. Daí eu coloquei la a "sigla" no value. Até que deu certo, mas continua não funcionando 100% . Não são todos os tamanhos que carrega. Será que ai o problema é o no banco de dados?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai é o relacionamento por isso lhe perguntei a variável $relacionar de onde vem e como são as tabelas, em qual existe esse campo.

Você tinha colocado na query que não funcionou, lá em cima "SELECT........relacionar=$relacionar.

isso selecionaria somente as quantidades iguais a $relacionar.

 

ex:

tabela estado

id/estado

Select Seleciona estado

 

tabela cidade

id/cidade/id_estado

Select Seleciona Cidade id_estado=$id_estado.(Todas cidade = ao id_estado)

Isso é o relacionamento, por isso lhe perguntei sobre como são as tabelas e de onde vem a variável $relacionar, que você mostrou lá em cima na query que não funcionou.

você colocou nela relacionar=$relacionar

isso selecionaria somente as quantidades iguais a $relacionar.

se tamanho vem de produtos (cada produto tem alguns tamanhos)deve estar no select tamanho.

 

como são as tabelas

qual tabela tem esse campo (relacionar)

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.