Ir ao conteúdo

Problema com Checkbox AJAX


Bruxo2

Posts recomendados

Postado

Boa tarde galera, eu estou criando um sistema onde o usuario escolhe o sabor da pizza e depois aparece na outra aba vários checkbox para ele clicar, nessas checkbox tem o valor dos complementos, porém quando eu envio o formulário, o PHP simplesmente não recebe o valor dessas checkbox, vocês tem alguma ideia do que pode ser?

Explicando como funciona(resumo):

1 - O usuario clica no tamanho da pizza, é chamada uma função javascript que cria os selects dos sabores dependendo do tamanho da pizza e abre uma janela modal com o formulário da mesma.

2 - O usuario seleciona o sabor no select e o mesmo chama uma função em AJAX que cria os checkbox dos opcionais e complementos das pizzas.

3 - O usuario escolhe tudo e envia o formulário.

O problema, quando ele envia o formulário, não vai o valor das checkbox, simplesmente não chega, o resto tá tudo funcionando perfeitamente, eu vi que tem mais gente com esse problema no google, mas não achei ou entendi a solução...

Meu formulario:

<div class='panel-container'>
<div id="tabs1-html">


<form method="post" action="exec.php" id="grava_sabor" enctype="multipart/form-data">
<input type="hidden" name="acao" value="grava_sabor">
<input type="hidden" name="pedido" value="">
<input type="hidden" name="tamanho3" value="">
<label style="margin-top: -4px;"> Selecione o Sabor </label>
<div id="sabores">

</div>
<br>
<div id="sumir1" style="margin-top: -18px;"> <label >BORDA:</label>
<select name="borda" class="selectBorda">
<option value=""> Sem Borda </option>
<?php imprimeBordasSelect();?>
</select>
</div>
<a href="#tabs1-js" style="display:block;width:101px;height:35px;margin:-7px -5px 0px 0px;padding:0px;border:0;float:right;cursor:pointer;position:relative;margin-top: 10px" />
<img src="imgs/botaoproximo.png"></a>



</div>
<div id="tabs1-js" style="height: 216px;overflow-x:hidden;">
<div id="opcional0">


</div>
<div id="opcional1">


</div>
<div id="opcional2">


</div>
<div id="opcional3">


</div>
<a href="#tabs1-css" style="display:block;
width:101px;
height:35px;
margin:-7px -5px 0px 0px;
padding:0px;
border:0;
float:right;
cursor:pointer;
position:relative;
margin-top: 10px" /> <img src="imgs/botaoproximo.png"></a>
</div>
<div id="tabs1-css">
<div class="complementos">
<div id="complemento0">


</div>
<div id="complemento1">


</div>
<div id="complemento2">


</div>
<div id="complemento3">


</div>
</div>
<a href="#massa" style="display:block;
width:101px;
height:35px;
margin:-7px -5px 0px 0px;
padding:0px;
border:0;
float:right;
cursor:pointer;
position:relative;
margin-top: 10px" /> <img src="imgs/botaoproximo.png"></a>


</div>

<div id="massa">
<label> Selecione a Massa </label>
<select name="massa">
<option value="0"> Selecione uma Massa </option>
<?php imprimeMassaSelect(); ?>

</select>


<input type="submit" value="" id="submitForm" style="margin-top: 20px;" class="botaoProximo" />

</form>

</div>
</div>
</div>

A página AJAX:


<?php
require_once('../inc/inc.configdb.php');
$idPizza = $_REQUEST['idPizza'];
$Query = mysql_query("Select * from Pizza where idPizza = '$idPizza'") or die(mysql_error());
while($Resultado = mysql_fetch_array($Query)){
$piz_numeroOpcional = $Resultado['piz_numeroOpcional'];
$piz_titulo = $Resultado['piz_titulo'];
}


?>

<fieldset style="width: 324px;"><legend> Opcionais de <?php echo $piz_titulo; ?></legend>
<input type="hidden" name="teste" value="askopaspo" />
<div class="opcionais">
<ul>
<?php
$Query = mysql_query("Select * from Opcional where idPizza = '$idPizza'") or die(mysql_error());
$num = mysql_num_rows($Query);
if($num>0)
while($Resultado = mysql_fetch_array($Query)){
$op_texto = $Resultado['op_texto'];
$idOpcional = $Resultado['idOpcional'];
echo '<li><input type="checkbox" name="opcional" class="checkOp" value="'.$idOpcional.'"> <label>'.$op_texto.' </label> </li>';
}
else echo 'Esse sabor não possui opcionais.';

?>

</ul>
</fieldset>
</div>

A chamada do Ajax:


function chamarAjax(id, idPizza){
var id1 = 'opcional'+id;
var id2 = 'complemento'+id;
var idPizza = idPizza;
$('#'+id1).load('ajax/opcional.php?idPizza='+idPizza);
$('#'+id2).load('ajax/complementos.php?idPizza='+idPizza);
}


Javascript que cria os sabores:
$('[name="tamanho"]').click(function(){

var alturaModal = ($(window).height()/2-$('#tamanhos').height()/2);
var larguraModal = ($(window).width()/2-$('#tamanhos').width()/2);
var maskHeight = $(document).height();
var maskWidth = $(window).width();
var tamanho = $(this).attr('rel');
var idTamanho = $(this).val();

$('#mask').css({'width':maskWidth,'height':maskHeight});
$('#mask').fadeIn(1000);
$('#mask').fadeTo("slow",0.8);
$('#tamanhos').css('height', '330px');
$('#tamanhos').css('left', larguraModal);
$('#tamanhos').css('top', alturaModal);
$('#tamanhos').fadeIn(2000);
$("[name='pedido']").val('pizza');
$("[name='tamanho3']").val(idTamanho);
var i = 0;

$('.sumir').remove();
$('.sumir').hide();
for(i=0;i<tamanho;i++){
$('<select name="sabores[]" class="sumir saboresMudar" onChange="chamarAjax(\''+i+'\', this.value)"></select>').appendTo('#sabores');

}
$('.sumir').load('ajax/sabores.php');


});

Postado

coloca um var_dump do $_POST para ficar mais fácil te ajudar

e nessas linhas


while($Resultado = mysql_fetch_array($Query)){
$op_texto = $Resultado['op_texto'];
$idOpcional = $Resultado['idOpcional'];
echo '<li><input type="checkbox" name="opcional" class="checkOp" value="'.$idOpcional.'"> <label>'.$op_texto.' </label> </li>';
}

você deseja enviar apenas um opcional? se for vários coloca assim:


echo '<li><input type="checkbox" name="opcional[]" class="checkOp" value="'.$idOpcional.'"> <label>'.$op_texto.' </label> </li>';

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!