Write AJAX Data

0

I need to send data via ajax to write, and one of the information is an array, but the array loses position when I get it in PHP, I do not know if there is a size limit for the AJAX object sent, if I need to split the array in several how would you do multiple data submissions on the same ajax request?

var dadosPost = {
          'qtdNotas' : notasSelecionadasArray.length,
          'transacao': $("#transacao").val(),
          'flag_tipo_romaneio' : transacaoSelect.flag_tipo_entrega,
          'motorista': $("#motorista").val(),
          'veiculo':   $("#veiculo").val(),
          'placa':  veiculoSelect.placa,
          'ajudante1': $("#ajudante1").val(),
          'ajudante2': $("#ajudante2").val(),
          'notas': notasSelecionadasArray
      };



     if(validateState){
         $.ajax({
             //url da pagina
             url: $("#baseURL").val()+'romaneio/criarRomaneio',
             //url: $("#baseURL").val()+'/views/romaneio/tes.php',
             //parametros a passar
             data: (dadosPost),
             //tipo: POST ou GET
             //dataType: 'JSON',
             type: 'POST',
             //cache
             cache: false,
             beforeSend: function(){
                 $('.loading').css({display:"block"});

             },

The variable notes is an array with several notes selected, to avoid problems I'm sending the amount of items contained in the array in JS to compare in PHP but this limits the application, I need to send a larger number of selected notes. >

   PHP
    $notasSelecionadas = ($_POST['notas']);
    $qtdNotas = ($_POST['qtdNotas']);
    $transacao = $_POST['transacao'];
    $motorista = $_POST['motorista'];
    $veiculo = $_POST['veiculo'];
    $ajudante1 = $_POST['ajudante1'];
    $ajudante2 = $_POST['ajudante2'];
    $flagTipoRomaneio = $_POST['flag_tipo_romaneio'];


    if(count($notasSelecionadas) >= 1){

        if(count($notasSelecionadas) == $qtdNotas){

        $dets = array();

        foreach($notasSelecionadas as $n){

            $o_romaneioDet = new RomaneioDetModel();
             $o_romaneioDet->setNotaFiscal(DataFilter::numeric($n['no_docto']));
                $o_romaneioDet->setCodCliente(DataFilter::cleanString($n['cod_cliente']));
                $o_romaneioDet->setNomeCliente(DataFilter::cleanString($n['razao_cliente']));
                $o_romaneioDet->setEndCliente(DataFilter::cleanString($n['endereco']));
                $o_romaneioDet->setCidadeCliente(DataFilter::cleanString($n['cidade']));
                $o_romaneioDet->setBairroCliente(DataFilter::cleanString($n['bairro']));
                $o_romaneioDet->setFoneCliente(DataFilter::cleanString($n['fone']));
                $o_romaneioDet->setFaturamento($n['faturas']);
                $o_romaneioDet->setSerieNotaFiscal(DataFilter::cleanString($n['serie_nfe']));
                $o_romaneioDet->setModeloNf(DataFilter::cleanString($n['modelo_nf']));
                $o_romaneioDet->setDtEmissaoNf(DataFilter::cleanString($n['dt_emissao_nf']));

            array_push($dets, $o_romaneioDet);
    
asked by anonymous 21.07.2017 / 15:53

1 answer

1

Pass the data via data: JSON.stringify(dadosPost), and in PHP capture the data, like this:

$dadosPost = json_decode($_POST['dadosPost']);
if (isset($dadosPost)) {
    // gravar dados no banco
}
    
21.07.2017 / 16:37