Ir para conteúdo

POWERED BY:

Arquivado

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

manolegal

Manter dados do campo após validação

Recommended Posts

Olá amigos. Tenho o seguinte código:

<div id="list" class="row-fluid">                  
<table class="table table-striped table-hover table-bordered" cellspacing="1" cellpadding="1" id="detalhes">
    <caption style="white-space: nowrap; text-align: center; font-weight: bold; color: white; background: #000039">Detalhes do Documento</caption>
        <thead>
            <tr>
                <th>.....</th>
            </tr>
        </thead>

        <tbody id="repetir">
            <tr id="linha_1"> 
                <td>
                    <select name="produto[]" id="produto[]" onfocus="mudacor(this,'yellow')" onblur="mudacor(this,'white')" onkeypress="return handleEnter(this, event)">
                        <option value="">-- Selecionar --</option>
                        <?php
                            $Sql = "SELECT id_produto, produto,
                        lower(simple_unaccent(produto)) as produto_ordenar
                        FROM veiculos_despesas_produtos_produtos
                        WHERE veiculos_despesas_produtos_produtos.ativo = 'Sim'
                        AND veiculos_despesas_produtos_produtos.frotas_utiliza = 'Sim'
                        ORDER BY produto_ordenar ASC";
                            $Resultado = @executa($Sql);  // @ (arroba) - se função der erro, não mostra erros para usuário
                        while ($linha = @pg_fetch_assoc($Resultado)){  // @ (arroba) - se função der erro, não mostra erros para usuário
                        $id_produto_bd = $linha["id_produto"];
                        $produto_bd = addslashes($linha["produto"]);
                            if ($produto[$i] == $id_produto_bd)
                            echo "<option value='$id_produto_bd' selected = 'selected'>$produto_bd - $id_produto_bd</option>";
                            else
                            echo "<option value='$id_produto_bd'>$produto_bd - $id_produto_bd</option>";
                        }
                        ?>
                    </select>
                </td>
                
                <td>
                    <button onclick="$.removeLinha(this);" type="button" id="remove">** Remover</button>
                </td>
                              
            </tr>
        
        </tbody>

        <tfoot>
            <tr>
                <td colspan="4">
                    <button type="button" id="add">**Adicionar Produto</button> 
                </td>

            </tr>
        </tfoot>                     
                           
</table>
    
</div>

Recebo dados:

$produto = $_POST ["produto"];

Um mesmo produto pode ser adicionado várias vezes.

O problema que ao submeter o formulário e havendo algum erro, os produtos selecionados deveriam ficar selecionados, porém isso não acontece e o formulário apresenta somente uma linha em branco.

Ao submeter o formulário mostra:

<?php var_dump($produto); ?>

array(2) { [0]=> string(1) "6" [1]=> string(1) "4" }

Como faço para manter os produtos selecionados após o submit?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funções adicionar e remover:

<script>
/* Função jQuery para remover linha */
$.removeLinha = function (element){
	/* Conta quantidade de linhas na tabela */
	var linha_total = $('tbody#repetir tr').length;
	/* Condição que mantém pelo menos uma linha na tabela */
	if (linha_total > 1){
		/* Remove os elementos da linha onde está o botão clicado */
		$(element).parent().parent().remove();
	}
	/* Avisa usuário de que não pode remover a última linha */
	else{
		alert("Favor selecionar ao menos 01 Produto!");
	}
};

/* Quando o documento estiver carregado… */
$(document).ready(function(){
	/* Variável que armazena limite de linhas (zero é ilimitada) */
	var limite_linhas = 50;
	/* Quando o botão adicionar for clicado... */
	$('#add').click(function(){
	  /* Conta quantidade de linhas na tabela */
	  var linha_total = $('tbody#repetir tr').length;
	  /* Condição que verifica se existe limite de linhas e, se existir, testa se usuário atingiu limite */
	  if (limite_linhas && limite_linhas > linha_total){
		/* Pega uma linha existente */
		var linha = $('tbody#repetir tr').html();
		/* Conta quantidade de linhas na tabela */
		var linha_total = $('tbody#repetir tr').length;
		/* Pega a ID da linha atual */
		var linha_id = $('tbody#repetir tr').attr('id');
		/* Acrescenta uma nova linha, incluindo a nova ID da linha */
		$('tbody#repetir').append('<tr id="linha_' + (linha_total + 1) + '">' + linha + '</tr>');
	 }
	/* Se usuário atingiu limite de linhas… */
	 else{
	   alert("Desculpe, mas você só pode adicionar até " + limite_linhas + " linhas!");
	}
	});
});
</script>

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.