How to pass array values via AJAX, via POST?

Asked

Viewed 112 times

0

Good people! I am creating a function to enter the data of a form in the BD (AJAX - POST):

function inserir_registo()
{

    //dados a enviar, vai buscar os valores dos campos que queremos enviar para a BD
    
    
   var dadosajax = {
        'nome' : $("#nome").val(),
        'apelido' : $("#apelido").val(),
        'sexo' : $("#sexo").val(),
        'idade' : $("#idade").val(),
        'morada' : $("#morada").val(),
        'contacto' : $("#contacto").val(),
        'email' : $("#email").val(),
        'habilitacoes' : $("#habilitacoes").val(),
        'restricoes_alimentares' : $("#restricoes_alimentares").val(),
        //'areas' : $("areas[]").val(),
        
        'disponivelSexta' : $("#nomeSacado").val(),
        'disponivelSabado' : $("#nomeSacadoSabado").val(),
        'disponivelDomingo' : $("#nomeSacadoDomingo").val(),
        'transporte' : $("#transporte").val(),
        'voluntarioAPPACDM' : $("#voluntarioAPPACDM").val(),
        'autorizaImagem' : $("#autorizaImagem").val()
    };
    pageurl = 'roda.php';
    //para consultar mais opcoes possiveis numa chamada ajax
    //http://api.jquery.com/jQuery.ajax/
    $.ajax({
	
        //url da pagina
        url: pageurl,
        //parametros a passar
        data: dadosajax,
        //tipo: POST ou GET
        type: 'POST',
        //cache
        cache: false,
        //se ocorrer um erro na chamada ajax, retorna este alerta
        //possiveis erros: pagina nao existe, erro de codigo na pagina, falha de comunicacao/internet, etc etc etc
        error: function(){
            alert('Erro: Inserir Registo!!');
        },
        //retorna o resultado da pagina para onde enviamos os dados
        success: function(result)
        { 
            //se foi inserido com sucesso
            if($.trim(result) == '1')
            {
				alert("O seu registo foi inserido com sucesso!");
            }
            //se foi um erro
            else
            {
                alert("Ocorreu um erro ao inserir o seu registo!");
            }

        }
    });
}

How do I get the values from this example of checkbox’s (areas[]) and pass them on var dadosajax?

HTML CHECKBOX’S:

<div class="form-group">
                    <label>Áreas de Interesse: </label><br>
                    <input id="interesse1" type="checkbox" name="areas[]" value="bilheteira">Bilheteira<br>
                    <input id="interesse2" type="checkbox" name="areas[]" value="guarda-roupa">Guarda-Roupa<br>
                    <input id="interesse3" type="checkbox" name="areas[]" value="venda de artesanato">Venda de artesanato<br>
                    <input id="interesse4" type="checkbox" name="areas[]" value="restauracao">Restauração<br>
                    <input id="interesse5" type="checkbox" name="areas[]" value="figuracao">Figuração<br>
                    <input id="interesse6" type="checkbox" name="areas[]" value="legiao">Legião<br>
                </div>

1 answer

0


Create an array by traversing name, checkboxes marked and send as value in 'areas'. At the beginning of the function put:

var areas = [];
$("[name='areas[]']:checked").each(function(i,e){
   areas.push(e.value)
});

And in the parameter 'areas', place:

'areas' : areas,

In the backend the value of areas will be received as an array with checkbox values marked.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.