Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá tudo bem?
Eu tenho um combo-box que ele só funciona corretamente com função "value" do input. Todavia não é este o valor que quero enviar via POST para outra tabela.
Eu queria saber se é possível trocar o envio do valor enviado pelo POST pelo ID ou o NAME, ou então pelo valor da lista que aparece para a pessoa clicar. Será que é possível?
Eu tentei também "enganar" o value incluindo o valor da linha + o valor que eu quero pegar usando o explode, mas não deu certo na prática.
Obrigaod
kkkkk!
Então eu vou exemplificar usando o sistema original de estado/cidade com Banco de Dados
Para que o sistema funcione, cada estado tem uma especie de ID e cidade tambem tem uma ID.
Imaginemos que o estado "São Paulo" tem a ID 1. Isso quer dizer que todas as cidades que tiverem a ID 1 a página vai entender que todas elas só serão alistadas se a pessoa clicar em São Paulo, certo?
Só que para ela funcionar, o cód em html teria que estar mais ou menos assim:
<select name="" id="" class=''>
<option value="1">(cidade de SP)</option>
Se enviarmos esses dados via POST, o sistema vai pegar o value "1" ao invés de pegar o nome do estado que é São Paulo entendeu?!
Do jeito que o sistema está, eu não consigo alterar o que vai aparecer no "value". Ele não funciona. Daí para tentar enganar, e que não deu certo, foi isso:
$estado = "São Paulo :1";
list($uniao) = explode (":", $estado);
echo $uniao; // Apagaria o :1 que é o número do valor e enviaria apenas o que eu realmente preciso
Mas se eu fizer este padrão em todos os campos, (estado) :(valor_id), é enviado o valor que quero para o POST mas o sistema não funciona direito
Evite campos multivalorados. Separar ID:nome só trará mais problemas
Você pode criar um input hidden no formulário. No evento onChange da tag select, altere o valor desse hidden para que ele armazene o nome da cidade. Assim, ao enviar o form, você terá um campo com o ID e outro com o nome.
isso deve ser feito com Javascript, não PHP
Ola! Acho que entendi o que você quis dizer. Mas aí estava meu grande receio. Só com Javascript.
PHP até que consigo fazer alguma coisa mas JS, não entendo nada praticamente. Nem editar e mal manipular. Não faço ideia como fazer o que você disse na pratica, mas eu vou pesquisando... Talvez eu consiga.
Obrigado mais uma vez :)
e se cadastrasse estado e cidade em um banco de dados? ficaria mais fácil usar no php e não corre o risco de pegar um usuário com js desabilitado. acredite tem usuário que desabilita o js.
Então, na realidade está tudo no banco de dados. Tem duas tabelas uma ligada a outra.
No caso das "cidades" eu alterei o cód original, troquei o "value" pelo "id" daí o valor do POST aparece o que eu quero que apareça.
O Còd parcialmente está assim:
<?php
while ( $row5 = mysql_fetch_array( $res ) ):
$cod5 = $row5['cod_quantidade'];
$sigla = $row5['sigla']; ?>
<option id="<?php echo $cod5 ?>" value="<?php echo "
$cod5"?>"><?php echo $sigla?></option>
<?php endwhile; ?>
Se eu coloco o <?php echo "$cod5"?> em ID, ele apenas carrega alguns dados apenas da tabela tamanho.
No meu banco de dados ao invés de estado/cidade eu uso quantidade/tamanho. Sendo assim, o "cod_quantidade" é o equivalente ao id_estado ou cod_estado e a "sigla", ao invés de sp, pf, pt, equivale ao valor da quantidade (10, 20, 50, 1000...).
não entendi muito muito não fera. desenrole mais o novelo aí por favor :nataltongue: