Ir para conteúdo

POWERED BY:

Arquivado

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

Jefferson Julio

Problema ao enviar sem refresh mais de um usando for

Recommended Posts

Eu tenho um código de envio de formulário sem refresh ajax que funciona corretamente quando utilizo ele dessa forma:

$w("#editar_produtos_1").submit(function() { 
	// Colocamos os valores de cada campo em uma váriavel para facilitar a manipulação 
	var id_produto	= $w("#id_produto_1").val(); 
	var valor	 	= $w("#valor_1").val(); 
	var estoque		= $w("#estoque_1").val();
	var estoque_alert 	= $w("#estoque_alert_1").val(); 
	// Exibe mensagem de carregamento 
	$w("#status_1").html("<center><div style='width:150px; padding:7px; background:#fff; border:1px solid #09F;'><img src='images/loader.gif' /> Carregando... </div></center>"); 
	// Fazemos a requisão ajax com o arquivo envia.php e enviamos os valores de cada campo através do método POST 
	$w.post('alterar_sem_refresh/atualiza_dados_produtos.php', {id_produto: id_produto, valor: valor, estoque: estoque, estoque_2: estoque_2}, function(resposta) { 
	// Quando terminada a requisição 
	// Exibe a div status 
	$w("#status_1").slideDown(); 
	// Se a resposta é um erro 
				if (resposta != false) { 
				// Exibe o erro na div 
				$w("#status_1").html(resposta); } 
				// Se resposta for false, ou seja, não ocorreu nenhum erro 
				else { 
				// Exibe mensagem de sucesso 
				$w("#status_1").html(resposta);
				 // Coloca a mensagem no div de mensagens 
				 $w("#mensagens").prepend("<strong>"+ nome +"</strong> disse: <em>" + mensagem + "</em><br />"); 
				 // Limpando todos os campos
				 $w('.enconder_info').css('display', 'none');
				 $w("#id_produto_1").val(id_produto);
				 $w("#valor_1").val(valor); 
				 $w("#estoque_1").val(estoque);
				 $w("#estoque_alert_1").val(estoque_alert);
				 } 
	 		}); 
	 	}); 
});

// Agora a Parti daqui fiz a mesma função de cima alterando apenas o numero 1 pelo numero 2

$w("#editar_produtos_2").submit(function() {
    // Colocamos os valores de cada campo em uma váriavel para facilitar a manipulação
    var id_produto    = $w("#id_produto_2").val();
    var valor         = $w("#valor_2").val();
    var estoque        = $w("#estoque_2").val();
    var estoque_alert     = $w("#estoque_alert_2").val();
    // Exibe mensagem de carregamento
    $w("#status_2").html("<center><div style='width:150px; padding:7px; background:#fff; border:1px solid #09F;'><img src='images/loader.gif' /> Carregando... </div></center>");
    // Fazemos a requisão ajax com o arquivo envia.php e enviamos os valores de cada campo através do método POST
    $w.post('alterar_sem_refresh/atualiza_dados_produtos.php', {id_produto: id_produto, valor: valor, estoque: estoque, estoque_2: estoque_2}, function(resposta) {
    // Quando terminada a requisição
    // Exibe a div status
    $w("#status_2").slideDown();
    // Se a resposta é um erro
                if (resposta != false) {
                // Exibe o erro na div
                $w("#status_2").html(resposta); }
                // Se resposta for false, ou seja, não ocorreu nenhum erro
                else {
                // Exibe mensagem de sucesso
                $w("#status_2").html(resposta);
                 // Coloca a mensagem no div de mensagens
                 $w("#mensagens").prepend("<strong>"+ nome +"</strong> disse: <em>" + mensagem + "</em><br />");
                 // Limpando todos os campos
                 $w('.enconder_info').css('display', 'none');
                 $w("#id_produto_2").val(id_produto);
                 $w("#valor_2").val(valor);
                 $w("#estoque_2").val(estoque);
                 $w("#estoque_alert_2").val(estoque_alert);
                 }
             });
         });
});

Aí fiz o teste dos dois formulários que estão na mesma página e ambos funcionaram corretamente enviando os valores e alterando no banco de dados corretamente.

Agora o que eu preciso é colocar mais ou menos uns 100 formulários desses na mesma página, se eu fosse seguir a forma como fiz acima tudo daria certo, porém pensei isso da trabalho e pesa muito o arquivo, então pensei vou criar um laço usando o (for), eu até tenho bastante conhecimento em PHP e sei bastante como usar laços nele e manipular valores de variáveis com finais numéricos com ele, porém no javascript não sei muito como fazer essa interação, então baseado no conhecimento pouco conhecimento que tenho de javascript fiz isso:

 for(var i7=0;i7<101;++i7){
	$w("#editar_produtos_"+[i7]+"").click(function() { 
	// Colocamos os valores de cada campo em uma váriavel para facilitar a manipulação 
	var id_produto	= $w("#id_produto_"+[i7]+"").val(); 
	var valor	 	= $w("#valor_"+[i7]+"").val(); 
	var estoque		= $w("#estoque_"+[i7]+"").val();
	var estoque_alert 	= $w("#estoque_alert_"+[i7]+"").val(); 
	// Exibe mensagem de carregamento 
	$w("#status_"+[i7]+"").html("<center><div style='width:150px; padding:7px; background:#fff; border:1px solid #09F;'><img src='images/loader.gif' /> Carregando... </div></center>"); 
	// Fazemos a requisão ajax com o arquivo envia.php e enviamos os valores de cada campo através do método POST 
	$w.post('alterar_sem_refresh/atualiza_dados_produtos.php', {id_produto: id_produto, valor: valor, estoque: estoque, estoque_2: estoque_2}, function(resposta) { 
	// Quando terminada a requisição 
	// Exibe a div status 
	$w("#status_"+[i7]+"").slideDown(); 
	// Se a resposta é um erro 
				if (resposta != false) { 
				// Exibe o erro na div 
				$w("#status_"+[i7]+"").html(resposta); } 
				// Se resposta for false, ou seja, não ocorreu nenhum erro 
				else { 
				// Exibe mensagem de sucesso 
				$w("#status_"+[i7]+"").html(resposta);
				 // Coloca a mensagem no div de mensagens 
				 $w("#mensagens").prepend("<strong>"+ nome +"</strong> disse: <em>" + mensagem + "</em><br />"); 
				 // Limpando todos os campos
				 $w('.enconder_info').css('display', 'none');
				 $w("#id_produto_"+[i7]+"").val(id_produto);
				 $w("#valor_"+[i7]+"").val(valor); 
				 $w("#estoque_"+[i7]+"").val(estoque);
				 $w("#estoque_alert_"+[i7]+"").val(estoque_alert);
				 } 
	 		}); 
	 	});
 }

E não funcionou !

A ideia é usar esse laço para fazer o serviço que eu teria, se fosse fazer manualmente como fiz no primeiro código.

Alguém poderia me ajudar com esse laço de repetição ?

Obrigado desde já.

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.