Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá a todos,
Sou novo em JavaScript/Jquery, mas estou tentando desenvolver um formulário dinâmico, ou seja, que os item são "ADD" através de um link chamado "+ Serviço". E também quando o Item é selecionado irá mudar o conteúdo dos Subitens.
Inicialmente ficaria assim:
<form action="Retorno.php" method="post">
<fieldset>
<legend>
Dados do Serviço
</legend>
<div class="Item">
<label>Preço Total do Serviço (R$)</label>
<input name="precoServico" type="text" value="" size="9" />
</div>
<div class="Item">
<label>Serviço</label>
<select id="IdTipo" name="IdTipo[]">
<option selected="selected">Selecione</option>
<option value="1">SERVICO 1</option>
<option value="2">SERVICO 2</option>
<option value="3">SERVICO 3</option>
<option value="4">SERVICO 4</option>
<option value="5">SERVICO 5</option>
</select>
<div class="Subitens"></div>
</div>
<div id="MoreItens">
</div>
<div class="Button">
<a href="#" id="Add">
+ Serviço
</a>
<input type="submit" value="Enviar" />
</div>
</fieldset>
</form>
Ao clicar no link "+ Serviços" irá ser inserido na div#MoreItens uma nova div.Item igual a de cima.
E ao selecionar o Item, do SELECT, irá acrescentar (ou não, caso não haja) Subitens dentro da div#Subitens.
Abaixo está o código que fiz em Jquery:
$(document).ready(function(){
$("select#IdTipo").live('change', function(){
$.post('includes/subs.php', {IdSolution:$(this).val()}, function(conteudo){
if ( conteudo == "" ) {
$("select#IdTipo").siblings("div.Subitens").html('');
} else {
conteudo += '<div id="Clear"></div>';
$("select#IdTipo").siblings("div.Subitens").html(conteudo);
}
});
});
$("#Add").click(function(){
$.ajax({
url: "includes/servicos.php",
success: function(Select){
var Item = '<div class="Item"><label>Serviço</label>' + Select + '<div class="Subitens"></div></div>';
$("div#MoreItens").append(Item);
}
});
});
});
Explicando logo o "ADD": Esse código irá incrementar uma div.Item na div#MoreItens.
Já o select#IdTipo irá procurar no MySQL se existe Subitem e quantos Subitens existem, havendo ele irá incrementar na div.Subitens. **Aí que está o erro!!!**
Quando ele vai adicionar, ele adicionar em todos as "divs irmãs" do select#IdTipo. Já tentei colocar das seguintes formas, e nenhuma delas carrega o HTML:
$(this).siblings("div.Subitens").html(conteudo); // Tentativa 1
$(this).siblings("div").html(conteudo); // Tentativa 2
$("select#IdTipo").next("div").html(conteudo); // Tentativa 3
$(this).next("div").html(conteudo); // Tentativa 4
$(this+" ~ div.Subitens").html(conteudo); // Tentativa 5
$("select#IdTipo ~ div.Subitens").html(conteudo); // Tentativa 6
Tentei e não funcionou!
Outra coisa que pensei foi em tornar cada select#IdTipo único, aí vem a bronca!!!
Como vou tornar cada um único, se quando for receber no "Retorno.php" vai ser a maior confusão!?!?
Peço a ajuda, porque é um trabalho para o cliente, e está faltando finalizar isso para ser entregue. Tive que pedir mais prazo, e ele me deu + 2 dias.
Desde já agradeço a atenção! Obrigado!
Carregando comentários...