Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia galera, tudo bem?
Estou com um probleminha que está difícil de encontrar a solução!
Tenho um form que enviará as informações para uma página PHP que tratará estas informações, guardando em um BD.
Neste form existe uma lista em checkbox, que ao ser passada para a página de tratamento se tornará um ARRAY!
Pois bem, todos os meus campos estão sendo recebidos corretamente, menos a lista em checkbox!
O array tem vindo sempre vazio e não sei o porque!
Abaixo vou postar o código do form e a forma como estou chamando:
<form id="cadastro_paciente" class="form-inline" method="post" action="inc/envia.cadastro.profissional.2.php">
<div class="control-group">
<label class="control-label" for="convenios">Atende em convênio? Qual(is)?</label>
<div class="controls"><ul class="checklist">
<li><label for="plano0"><input id="plano0" name="convenios[]" value="Amil" type="checkbox" />Amil</label></li>
<li><label for="plano1"><input id="plano1" name="convenios[]" value="Amil linha Medial Saúde" type="checkbox" />Amil linha Medial Saúde</label></li>
<li><label for="plano2"><input id="plano2" name="convenios[]" value="Amil linha Dix" type="checkbox" />Amil linha Dix</label></li>
<li><label for="plano3"><input id="plano3" name="convenios[]" value="Amesp" type="checkbox" />Amesp</label></li>
<li><label for="plano4"><input id="plano4" name="convenios[]" value="Bradesco Saúde" type="checkbox" />Bradesco Saúde</label></li>
<li><label for="plano5"><input id="plano5" name="convenios[]" value="Golden Cross" type="checkbox" />Golden Cross</label></li>
<li><label for="plano6"><input id="plano6" name="convenios[]" value="Green Line" type="checkbox" />Green Line</label></li>
<li><label for="plano7"><input id="plano7" name="convenios[]" value="Intermédica" type="checkbox" />Intermédica</label></li>
<li><label for="plano8"><input id="plano8" name="convenios[]" value="Itálica" type="checkbox" />Itálica</label></li>
<li><label for="plano9"><input id="plano9" name="convenios[]" value="Marítima" type="checkbox" />Marítima</label></li>
<li><label for="plano10"><input id="plano10" name="convenios[]" value="Medicol" type="checkbox" />Medicol</label></li>
<li><label for="plano11"><input id="plano11" name="convenios[]" value="Ômega" type="checkbox" />Ômega</label></li>
<li><label for="plano12"><input id="plano12" name="convenios[]" value="Omint" type="checkbox" />Omint</label></li>
<li><label for="plano13"><input id="plano13" name="convenios[]" value="One Health" type="checkbox" />One Health</label></li>
<li><label for="plano14"><input id="plano14" name="convenios[]" value="Porto Seguro" type="checkbox" />Porto Seguro</label></li>
<li><label for="plano15"><input id="plano15" name="convenios[]" value="Samcil" type="checkbox" />Samcil</label></li>
<li><label for="plano16"><input id="plano16" name="convenios[]" value="Santa Helena" type="checkbox" />Santa Helena</label></li>
<li><label for="plano17"><input id="plano17" name="convenios[]" value="Santamália" type="checkbox" />Santamália</label></li>
<li><label for="plano18"><input id="plano18" name="convenios[]" value="São Cristóvão" type="checkbox" />São Cristóvão</label></li>
<li><label for="plano19"><input id="plano19" name="convenios[]" value="Saúde Medicol" type="checkbox" />Saúde Medicol</label></li>
<li><label for="plano20"><input id="plano20" name="convenios[]" value="Seisa" type="checkbox" />Seisa</label></li>
<li><label for="plano21"><input id="plano21" name="convenios[]" value="Serma" type="checkbox" />Serma</label></li>
<li><label for="plano22"><input id="plano22" name="convenios[]" value="SulAmérica" type="checkbox" />SulAmérica</label></li>
<li><label for="plano23"><input id="plano23" name="convenios[]" value="Unimed Paulistana" type="checkbox" />Unimed Paulistana</label></li>
<li><label for="plano24"><input id="plano24" name="convenios[]" value="Unimed Seguros" type="checkbox" />Unimed Seguros</label></li>
<li><label for="plano25"><input id="plano25" name="convenios[]" value="Outro" type="checkbox" />Outro</label></li>
</ul>
</div>
</div>
</form>
E o trecho do PHP que trata essas informações:
/ = INFORMAÇÕES DO FORMULÁRIO = /
//Trata o formato da Data de Nascimento
$data_nasc = clean_s($_POST['data_nascimento'])." 00:00";
$data_nascimento = preg_replace('#(\d{2})/(\d{2})/(\d{4})\s(.*)#', '$3-$2-$1 $4:00', $data_nasc);
$telefone = clean_s($_POST['telefone']);
$convenios = clean_s($_POST['convenios']);
$convenios_db = ''; foreach($convenios as $item) {
$convenios_db .= ','.clean_s($item);
}
}
$outro_convenio = clean_s($_POST['outro_convenio']);
$cep = clean_s($_POST['cep']);
$numero = clean_s($_POST['numero']);
$complemento = clean_s($_POST['complemento']);
$zona = clean_s($_POST['zona']);
$email_alternativo = clean_s($_POST['email_alternativo']);
$website = clean_s($_POST['website']);
$pergunta_seguranca = clean_s($_POST['pergunta_seguranca']);
$resposta_seguranca = clean_s($_POST['resposta_seguranca']);
$validacao = clean_s($_POST['validacao']);
**Obs: **Essa função clean_s() é só pra limpar as informações antes de colocar no BD. Fiz o teste tirando ela e chamando do modo clássico ( $convenios = $_POST['convenios']; ) e também não funcionou!
Somente esse array CONVENIOS que não está sendo recuperado.
Pedi para mostrar o conteúdo da variável $convenios e o que ele mostra é isso:
echo 'Convenios: '.$convenios."<br/>";
Resultado:
Convenios: Array
Será que algum de vocês conseguiria entender o que há de errado?
Pois pra mim está certo, porém outros programadores podem enxergar um erro que eu mesmo não enxerguei!
Muito obrigado desde já!
>
Olá da um print_r($convenios); e veja o que retorna.
E remove esse clean_s dele.
Que estranho: Ao colocar o print_r($convenios); ele mostrou o conteúdo do Array e também fez a estruturação como pedi.
O resultado ficou como:
Array ( [0] => Amil [1] => Amil linha Medial Saúde [2] => Amil linha Dix [3] => Amesp [4] => Bradesco Saúde [5] => Golden Cross )
Convenios: Array
Convenios_db: ,Amil,Amil linha Medial Saúde,Amil linha Dix,Amesp,Bradesco Saúde,Golden Cross
Porque ele fez isso?
Olá amigo acho que o seu clean_s diretamente no Array estava dando erro.
Olá amigo acho que o seu clean_s diretamente no Array estava dando erro.
Pois é, mas eu já havia feito o teste tirando o clean_s() do array e também não havia funcionado!
Vou fazer o teste novamente, pra ver se continuará funcionando!
Se der tudo certo, marco sua resposta como solução!
Mas desde já agradeço por sua ajuda!
Olá da um print_r($convenios); e veja o que retorna.
E remove esse clean_s dele.