Ir para conteúdo

POWERED BY:

Arquivado

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

Nandoluizpm

.submit() não envia valor do 'button'

Recommended Posts

Pessoal, atualmente enfrento um pequeno problema no js. Preciso fazer um submit de um form php onde todos os campos possuem names:

<form action="#" method="post" id="cad-produto">
		<fieldset>
			<div id="campos">
				<label>Identificador: </label><input type="text" name="ident" id="ident" /><br/>
				<label>Nome: <span class="campoObrigatorio">*</span></label><input type="text" name="nome" id="nome" class="obrigatorio" /><br/>
				<label>Descrição: </label><textarea type="text" name="desc" id="desc" class="descricao"></textarea><br/>
				<label>Unidade: <span class="campoObrigatorio">*</span></label><input type="text" name="uni" id="uni" class="obrigatorio" /><br/>
				<label>Preço: <span class="campoObrigatorio">*</span></label><input type="text" name="preco" id="preco" class="obrigatorio" /><br/>
				<label>Disponível: </label><input type="checkbox" name="disp" id="disp" /><br/>
				<br/>
				<input type="button" name="inserir" id="inserir" value="Inserir" onClick="ValidaRegistro();" />
                </fieldset>
</form>

Minha função para validar registro faz uma pequena checagem dos dados e, se tudo estiver válido, faz:

$("#cad-produto").submit();

O problema é que no cabeçalho dessa página eu verifico:

if(isset($_POST['inserir']))
{
   //açao de inserir
}

e esse bloco não é executado. Porém, se eu trocar o name 'inserir' por qualquer outro presente o form, o bloco é executado. Creio que os valores de botões não são enviados. Mas isso será um problema, pois eu adicionarei outros 'buttons' na tela.

Por que isso acontece? Sugestões?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Nando

 

Pra verificar os campos que estão sendo enviados pelo formulário, coloca um escape simples antes desse if isset com isso aqui.

die('<pre>'.print_r($_POST,true).'</pre>');

Isso vai te mostrar tudo que vem no post, de forma identada.

 

Se você constatar que o campo inserir não é mesmo enviado, então é por causa do type dele, que provavelmente não é considerado um campo de valor pelo jQuery, mas como um campo de função (button).

As alternativas pra isso são você trocar o type button por submit, ou se não funcionar, deixa button e adiciona um input com type hidden com um valor "1"

Por exemplo

<input type="hidden" name="envio" value="1">

E no php você pode verificar se é $_POST['envio']==1

 

Valeu

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.