Ir para conteúdo

POWERED BY:

Arquivado

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

keepkuler

Checkbox não envia os valores para form

Recommended Posts

Boa noite!

 

Estou adaptando uma página de um template que contém uma arquivo de contato. Duplicando este arquivo e mantendo as referências básicas, tudo funcionava sem maiores problemas.

 

Meu problema iniciou ao adicionar 3 campos checkboxs, por algum motivo que não encontro, o Post não reconhece os valores como array.

 

Abaixo coloco parte do código que estou utilizando, se alguém puder me ajudar e apontar as possíveis falhas que estou deixando passar, agradeço a ajuda.

Código HTML

Label 01
<input id="form_opt" type="checkbox" name="chk[]" value="Valor 01" />
Label 02
<input id="form_opt" type="checkbox" name="chk[]" value="Valor 02" />
Label 03
<input id="form_opt" type="checkbox" name="chk[]" value="Valor 03" />

 

Código no post

//campos do formulario
$input_name 	= strip_tags($_POST['name']);
$input_email 	= strip_tags($_POST['email']);
$input_perfil	= strip_tags($_POST['perfil']);

if(isset($_POST['chk']))
{
	$input_opt = $_POST['chk'];
	$chave = array_keys($input_opt);

	echo '<script language=javascript>alert("Input_Opt: '. sizeof($chave) .'");</script>';
}
else
{
	echo '<script language=javascript>alert("Input_Opt vazio: '. sizeof($chave) .'");</script>';
}

 

Fiz o mesmo código em um arquivo teste e o resultado foi satisfatório. Mas, ao fazer a mesma lógica no WP, não tenho resultado.

 

 

 

Agradeço a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ted, desculpe a demora do retorno, estive meio enrolado... Então, segue o form do template que estou adaptando...

 


<?php
if(isset($_POST['name']) && empty($_POST['spam_check']))
{
require 'email-validator.php';
$validator = new EmailAddressValidator();

//enviando e-mail com aviso de novo cadastro
$mailto			= utf8_decode("conta@provedor.com.br");
$input_subject	= 'assunto';

$errors = array();

//campos do formulario
$input_name 	= strip_tags($_POST['name']);
$input_email 	= strip_tags($_POST['email']);
$input_perfil	= strip_tags($_POST['perfil']);

if(isset($_POST['chk']))
{
	$input_opt = $_POST['chk'];
	$chave = array_keys($input_opt);

	echo '<script language=javascript>alert("Input_Opt: '. sizeof($chave) .'");</script>';
}
else
{
	echo '<script language=javascript>alert("Input_Opt vazio: '. sizeof($chave) .'");</script>';
}

	//campo de anexo
	$file_temp = $_FILES["anexo"]["tmp_name"];
	$file_nome = $_FILES["anexo"]["name"];
	$file_size = $_FILES["anexo"]["size"];
	$file_tipo = $_FILES["anexo"]["type"];

//msg formata para email
if($file_temp){
$fp = fopen($file_temp, "rb");
$anexo = fread($fp, $file_size);
$anexo = base64_encode($anexo);
fclose($fp);

$anexo = chunk_split($anexo);

$boundary = "XYZ - ". date("dmYis") . "-ZYX";

$msg = "--$boundary\n";
$msg .= "Content-Transfer-Encoding: 8bits\n";
$msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\n\n";

$msg .= "<b>Nome:</b> ". $input_name;
$msg .=	"<br /><b>e-mail:</b> <a href=\"mailto:". $input_email ."\">". $input_email ."</a>";
$msg .=	"<br /><b>Assunto: </b> ". $input_subject;
$msg .=	"<br /><br /><b>Mensagem:</b> <br />". $input_message;

$msg .= "--$boundary \n";
$msg .= "Content-Type: ". $file_tipo ."\n";
$msg .= "Content-Disposition: attachment; filename=\"". $file_nome ."\"\n";
$msg .= "Content-Transfer-Encoding: base64 \n\n";
$msg .= "$anexo\n";
$msg .= "--$boundary--\r\n";

//cabeçalho
$headers = "MIME-Version: 1.1\n";
$headers .= "Content-Type: multipart/mixed; charset=utf-8; boundary=\"$boundary\"\r\n";
$headers .= "$boundary\n";
$headers .= "From: ". $input_name ."<". $input_email .">\n";
$headers .= "Return-Path: ". $input_email ."\n";
}

$required = array('Campo nome' => 'name', 'Campo e-mail' => 'email');

foreach($required as $key=>$value)
{
	if($_POST[$value] != 'Nome' && isset($_POST[$value]) && $_POST[$value] !== '') { continue; }
	else { $errors[] = $key . ' é obrigatório'; }
}

   if (!$validator->check_email_address($input_email)) 
{
  		$errors[] = 'O endereço de e-mail não é válido';
   }

if(sizeof($input_opt) == 0)
{
	$errors[] = 'É necessário selecionar uma opcao.';
}

if(empty($errors))
{		
	if(mail($mailto, "[studiotag][rh] $input_name - $input_subject", $msg, $headers)) { echo 'Obrigado! Sua mensagem foi enviada com sucesso.'; }
	else { echo 'Ops! Sua mensagem não foi enviada. Tente novamente.'; }		
}
else 
{
	echo implode('<br />', $errors);
}
}
else
{
die('Você não pode acessar esta página diretamente.');
}

 

 


<form id='rh-form' method='post' action='<?php bloginfo('url'); ?>/wp-content/themes/satoshi/scripts/rh-process.php'>
			<fieldset>					
				<input id='form_name' type='text' name='name' value='Nome' onfocus="if(this.value=='Nome'){this.value=''};" onblur="if(this.value==''){this.value='Nome'};" />					
				<input id='form_email' type='text' name='email' value="Email" onfocus="if(this.value=='Email'){this.value=''};" onblur="if(this.value==''){this.value='Email'};" />

				<input id='form_file' type='file' name='anexo' value='Anexar PDF' />

          		<div id="label_opt">
                       Opcao 01
                       <input id="form_opt" type="checkbox" name="chk[]" value="Opcao 1" />
                       Opcao 2
                       <input id="form_opt" type="checkbox" name="chk[]" value="Opcao 2" />
                       Opcao 3
                       <input id="form_opt" type="checkbox" name="chk[]" value="Opcao 3" />
          		</div>

                   <textarea id='form_perfil' rows='10' cols='40' name='perfil' onfocus="if(this.value=='Informações adicionais'){this.value=''};" onblur="if(this.value==''){this.value='Informações adicionais'};">Informações adicionais</textarea>

				<input id='rh_submit' class="submit" type='submit' name='submit' value='' />
				<div class='hide'>
					<label>Do not fill out this field</label>
					<input name='spam_check' type='text' value='' />
				</div>
			</fieldset>
		</form>

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.