Ir para conteúdo

POWERED BY:

Arquivado

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

fsf

Varios input com o mesmo nome

Recommended Posts

Pessoal, To tentando criar um formulario de entrada de produtos no estoque.. com isso tenho alguns campos inputs com o mesmo nome(Produto, quantidade, lote).. estes campos são adicionados dinamicamento no formulario..

 

var hiddens = 

	'<div id = "'+produ+'">'+
	'<input type="text" readonly="true" name="pro[]" value="'+produ+'"/>'+
	'<input type="text" readonly="true" name="no[]" value="'+nome+'" />'+
              '<input type="text" readonly="true" name="quan[]" value="'+quant+'" />'+  
               '<input type="text" readonly="true" name="vali[]" value="'+data+'" />'+  
              '<input type="text" readonly="true" name="lo[]" value="'+lot+'" />'+
               '<a href="#" id="class" onclick="del('+produ+')">X</a></div>'+
             '</div>'; 


       var camposTexto = document.getElementById('linhas');   
             camposTexto.innerHTML = camposTexto.innerHTML+hiddens;

 

So que na hora de Chamar a Função Cadastrar

function Cadastrar(form) {

	    ajax = Verifica(); 
	    varFornecedores = escape(form.fornecedores.value);
	    varUnidade = escape(form.unidade.value);
	    varNota = escape(form.nota.value);
	    varProcesso = escape(form.processo.value);
	    varObs = escape(form.obs.value);			
	    varProduto = $_POST['pro'];

     ajax.open("POST", "EntradaMaterial.php", true);
     ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
     ajax.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
     ajax.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
     ajax.setRequestHeader("Pragma", "no-cache");


	 ajax.onreadystatechange = function() {
           //enquanto estiver processando...emite a msg de carregando
		if(ajax.readyState == 1) {

			document.getElementById("main").innerHTML = "<img src='img/ajax-loader.gif' alt='Enviando' />";
        }
		//após ser processado - chama função processXML que vai varrer os dados
           if(ajax.readyState == 4 ) {

           	if(ajax.responseText == 1) {
 				  //  document.getElementById("resposta").innerHTML = "DADOS CADASTRADOS COM SUCESSO ! ! ! <br><br><br>";
 				 alert("Cadastro efetuado com Sucesso!");   
 				 window.location.href = "http://localhost/italva/formEntradaMaterialSecretariaNovo.php";        // Redireciona para uma pagina....
 				         } else{
 				               // document.getElementById("main").innerHTML = ajax.responseText;
 				              alert(ajax.responseText);  
 				            window.location.href = "http://localhost/italva/formEntradaMaterialSecretariaNovo.php";
 				         }
		   }

           }

	 ajax.send("fornecedor=" + varFornecedores+"&unidade=" + varUnidade +"&nota=" + varNota+"&processo=" + varProcesso+"&obs=" + varObs+"&produto=" + varProduto);

 }

 

O JAVASCRIPT ME RETORNA A SEGUINTE MENSAGEM:

$_POST is not defined

[Parar neste erro]

 

varProduto = $_POST['pro'];

 

Desta forma o cadastro não funciona...Alguem pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mudei o codigo....

function Cadastrar(form) {

	    ajax = Verifica(); 
	    varFornecedores = escape(form.fornecedores.value);
	    varUnidade = escape(form.unidade.value);
		varNota = escape(form.nota.value);
		varProcesso = escape(form.processo.value);
		varObs = escape(form.obs.value);			
		varProduto = escape(form.pro.value);

     ajax.open("POST", "EntradaMaterial.php", true);
     ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
     ajax.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
     ajax.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
     ajax.setRequestHeader("Pragma", "no-cache");


	 ajax.onreadystatechange = function() {
           //enquanto estiver processando...emite a msg de carregando
		if(ajax.readyState == 1) {

			document.getElementById("main").innerHTML = "<img src='img/ajax-loader.gif' alt='Enviando' />";
        }
		//após ser processado - chama função processXML que vai varrer os dados
           if(ajax.readyState == 4 ) {

           	if(ajax.responseText == 1) {
 				  //  document.getElementById("resposta").innerHTML = "DADOS CADASTRADOS COM SUCESSO ! ! ! <br><br><br>";
 				 alert("Cadastro efetuado com Sucesso!");   
 				 window.location.href = "http://localhost/italva/formEntradaMaterialSecretariaNovo.php";        // Redireciona para uma pagina....
 				         } else{
 				               // document.getElementById("main").innerHTML = ajax.responseText;
 				              alert(ajax.responseText);  
 				            window.location.href = "http://localhost/italva/formEntradaMaterialSecretariaNovo.php";
 				         }
		   }

           }

	 ajax.send("fornecedor=" + varFornecedores+"&unidade=" + varUnidade +"&nota=" + varNota+"&processo=" + varProcesso+"&obs=" + varObs+"&produto=" + varProduto);

 }

 

MAS O ERRO AINDA CONTINUA...

form.pro is undefined

[Parar neste erro]

 

varProduto = escape(form.pro.value);

Compartilhar este post


Link para o post
Compartilhar em outros sites

form.pro is undefined

 

É claro que não está definida, você está passando o atributo name como array.

 

Aqui.

 

<input type="text" readonly="true" name="pro[]" value="'+produ+'"/>

 

Dessa forma você vai ter que pega-los como array também.

 

var produtos = document.getElementsByName('pro[]');
var produtosArray = Array();

for( var i = 0; i <= produtos.length-1; i++)
{
     produtosArray.push( produtos[i].value );
}

 

É mais complicado, mais adiciona a cada índice do Array o valor do Campo.

 

É mesmo necessário passar aquilo como Array? :upset:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que não é necessário passar como array, você deveria ao invés de colocar pra ler como array, ele gravar como uma variável comum e ler do mesmo jeito.

Assim:

<input type="text" readonly="true" name="pro" value="'+produ+'"/>

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.