Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Preciso submeter valores de checkbox selecionados em um formulario e enviar por post, porém os valores dos checkbox são obtidos por sql e os names e ids dos campos são iguais. Alguem sabe me informar cm faço para submeter esses valores?
Na verdade isso já foi feito, preciso de uma forma de enviar o valor apenas das selecionadas para um script php.
O código está assim:
<script>
//////////////envia sms para lista de contatos selecionados////////////
//function enviar_p_contatos_slc().submit{
jQuery(document).ready(function(){
jQuery('#enviaContSlc').submit(function(){
alert('submetido com sucesso!');
var inputs, selecionados=0, chk=0;
var contatoslc = new Array();
inputs = document.getElementsByTagName('input');///recebe todos os inputs do documento
teste = inputs.length; // conta-os
////conta quantos desses inputs sao checkboxs e quantos foram selecionados
for(var x=0;x<inputs.length;x++){
if(inputs[x].type=='checkbox'){
chk++;
if(inputs[x].checked==true && inputs[x].id == 'chkCont[]'){
selecionados++;
contatoslc[selecionados] = inputs[x].value;
alert("contato " + selecionados + ": " + contatoslc[selecionados]);
}
}
}
alert( chk + " dos inputs são do tipo checkbox");
if(selecionados != 0){
alert( selecionados + " dos inputs do tipo checkbox foram selecionados.");
}});
});
</script>jQuery
$('button').click(function(){
if( $('.check:checked').length == 0 ){
alert('Selecione almenos 1');
}else{
var val = new Array();
$('.check:checked').each(function(){
val.push($(this).val());
});
$.ajax({
url:'teste.php',
type:'POST',
data:'valor=' + val,
success:function(data){
$('.exibe').html(data);
}
});
}
return false;
});
HTML
<div class="exibe"></div>
Peixe <input type="checkbox" class="check" name="valor[]" value="1"/>
Carne <input type="checkbox" class="check" name="valor[]" value="2"/>
<button>Enviar</button>
PHP
if( isset( $_POST['valor'] ) ){
$a = explode(',' , $_POST['valor']);
foreach( $a as $value ){
query("SELECT * FROM `tabela` WHERE `id`='".$value."'");
}
}Usei o exemplo que vc me enviou, ficou assim:
//////////////////////////////////////////////////////////////////////
JQUERY:
jQuery(document).ready(function(){
jQuery('#enviaContSlc').submit(function(){
if( $('.check:checked').length == 0 ){
alert('Selecione almenos 1');
}var val = new Array();
$('.check:checked').each(function(){
val.push($(this).val());
});
$.ajax({
url:'recebecontatos.php',
type:'POST',
data:'valor=' + val,
success: $(location).attr('href', 'recebecontatos.php')
});
alert(val);
}
return false;
});
});if( isset( $_POST['valor'] ) ){
$a = explode(',' , $_POST['valor']);
foreach( $a as $value ){
echo $value;
}
}
else if(!isset($_POST['valor'])){
echo 'Vazio';
/////////////////////////////////////////////////////////////////////////
O problema é que o post está a informação não está chegando no php. Vc identificou o erro ai?
Muda o PHP para
if( isset( $_POST['valor'] ) ){
//$a = explode(',' , $_POST['valor']);#Troca isto
$a = $_POST['valor'];#por isto
foreach( $a as $value ){
query("SELECT * FROM `tabela` WHERE `id`='".$value."'");
}
}Na verdade tbm já tentei a troca, acho que o erro está no envio com ajax. Alguém sabe uma forma de enviar essa informação pra pag php sem ajax?
PHP
Os atributos "name" dos checkbox tem que contem "[]"exemplo: