How to pass array in JavaScript to variable in PHP

0

What is the best way to transfer two arrays into JavaScript for variables in PHP, follow my idea below, would it work?

JavaScript Function

  • Expiration date array ( datasvenc ) in file cadastro_contratos.php :

Is it correct to create array in JavaScript and assign it to indexes within the for?

function calculamensalidades(){

  var valortotal = parseFloat(document.getElementById("total").value);
  var valorparcela = valortotal/document.getElementById("select_parcelas").value;
  var parcelas = parseFloat(document.getElementById("select_parcelas").value);
  var date = new Date();
  var mesvencimento = date.getMonth();
  var diavencimento = date.getDate();
  var datasvenc = new Array(6) 
  var tabela;
  tabela = "<br><table border='0' width='30%' style='text-align:center'><tr><td bgcolor='#4682B4'>Parcela</td><td bgcolor='#4682B4' >Valor</td><td bgcolor='#4682B4'>Vencimento</td></tr>";


  for(var a=0; a<document.getElementById("select_parcelas").value; a++)
 {
  var n_date = new Date(date.getFullYear(), eval(a+mesvencimento), diavencimento);
  var diavec = date.getDate();
  var mesvenc = n_date.getMonth();
  var anovenc = n_date.getFullYear();
     tabela = tabela + "<tr><td bgcolor='#9AC0CD'>"+(a+1)+"</td><td bgcolor='#9AC0CD'>R$ "+valorparcela.toFixed(2)+"</td><td bgcolor='#9AC0CD'>"+diavec+"/"+mesvenc+"/"+anovenc+"</td></tr>";
     datasvenc[a] = diavec+"/"+mesvenc+"/"+anovenc;
 }
 tabela=tabela+"</table>";
document.getElementById("mensalidades").innerHTML="";
document.getElementById("mensalidades").innerHTML=tabela;
 }

function apagatabela(){
document.getElementById('mensalidades').innerHTML="";
}

 function liberar()
{
  var total = document.getElementById("total"); 
  var parcelas = document.getElementById("select_parcelas");

  if(total.value != "")
  {
    parcelas.disabled=false;
  }
}

Attracting to php in the same file cadastro_contratos.php:

Is this correct for the javascript assignment for php? $dataVencimento = unserialize(base64_decode($dataVencimento));//Decode para array

<div id="painelcadastro2" align="center">
<?php   if (isset($_GET['cadastra']) && $_GET['cadastra'] == 'add') {
  $datacompra = implode("-", array_reverse(explode("/",$_GET['datacompra'])));
  $nomeProduto = filter_input(INPUT_GET, 'nomeProduto1');
  $qtProduto = filter_input(INPUT_GET, 'qtProduto1');
  $valorProduto = filter_input(INPUT_GET, 'valorProduto1');
  $valorparc = filter_input(INPUT_GET, 'valorparcela');
  $parcelas = filter_input(INPUT_GET, 'select_parcelas');
  $entrada = filter_input(INPUT_GET, 'entrada');
  $total = filter_input(INPUT_GET, 'total');
  $status = "ativo";
  $dataVencimento = filter_input(INPUT_GET, 'datasvenc');
  $dataVencimento = unserialize(base64_decode($dataVencimento));//Decode para array
  $pagamento = "CREDIARIO";
  mysqli_query("SET AUTOCOMMIT=0");
  mysqli_query("START TRANSACTION");
  $cadastracontratos = mysqli_query("INSERT INTO t_cadcontratos (Ficha, DataContrato, QuantParcelas, ValorContrato, Entrada, Saldo, DescricaoProduto, QuantProdutos, Vendedores, FormaPagamento) 
                          VALUES ('$nrFicha', '$datacompra', '$parcelas', '$valorProduto', '$entrada', '$total', '$nomeProduto', '$qtProduto', UPPER('$_SESSION[MM_Username]'), '$pagamento')");
  for($numparcelas=1; $numparcelas>$parcelas; $numparcelas++ ){
  $cadastraparcelas = mysqli_query("INSERT INTO t_cadparcelas (NumContrato, NumParcela, ValorParcela, DataVencimento, Status) 
                          VALUES ('$NumContrato', '$numparcelas', '$valorparc', '$dataVencimento[numparcelas]', '$status')");
  }
  if($cadastracontratos == '1' && $cadastraparcelas == '1') {
        mysqli_query("COMMIT");
        echo "Venda Crediário realizada com sucesso !";
  }else{
        mysqli_query("ROLLBACK");
        echo "Erro ao realizar a venda Crediário, tente novamente !";
  }
}
?>

<form id="adicionarformProdutos" method"post" action"" enctype="multipart/form-data">
     <a href="#" id="adicionarProduto">Adicionar Produto</a>      
    <fieldset class="fieldsetProduto">
        <legend>Produto 1</legend>
        <div class="produtos">
            <label for="codProduto1">Código:</label><input class="codigoProduto" type="text" id="codProduto1" size="5" name="codProduto1" />
            <label for="nomeProduto1">Nome:</label> <input type="text" id="nomeProduto1" name="nomeProduto1" size="9"  />
            <label for="qtProduto1">Qt.:</label> <input type="text" size="1" id="qtProduto1" name="qtProduto1" onblur="calcValor()" />
            <label for="valorProduto1">Valor und. R$:</label> <input type="text" id="valorProduto1" name="valorProduto1" size="6" onkeypress="mascara(this,float)" />
        </div>
     </fieldset>
<br>
            <label>Data da Compra <input name="datacompra" type="text" id="datacompra" size="6" maxlength="10" value="<?php echo date('d/m/Y')?>" onKeyUp="javascript:somente_numero(this);" onkeypress="formatar_mascara(this,'##/##/####')"/></label>
            <label>Desconto (%)<span style="display:none" id="sp_vdesconto"></span><input type="hidden"  name="vdesconto" id="vdesconto" />:<input type="text" name="desconto" size="6" value="0"id="desconto" onblur="calcValor()" /></label>   
            <label>Entrada R$<span style="display:none" id="sp_vdentrada"></span><input type="hidden" size="6" name="vdentrada" id="vdentrada" />:<input type="text" name="entrada" size="6" value="0"id="entrada" onKeyPress="return(MascaraMoeda(this,'.',',',event))" onblur="calcValor()" /></label>
<div>
  <br>
  <div>
            <label>Valor Total: <input type="text" name="total" value="0" size="6" id="total" onblur="liberar(); "/></label>
            <label>Qt. Parcelas: </label><select onchange="calculamensalidades()" disabled="disabled" value="" id="select_parcelas" name="select_parcelas">
              <option>1</option>
              <option>2</option>
              <option>3</option>
              <option>4</option>
              <option>5</option>
              <option>6</option>
            </select>
 <div id="mensalidades"></div>
</div>
<br>
    <input type="reset" onClick="apagatabela()">
    <input type="hidden" name="cadastra" value="add"  />
    <input type="hidden" value="<?php echo $nrFicha;?>" name="cadastro" />
    <input type="submit" name="add" id="add" value="Cadastrar" />  
</div><!--fechando div painelcadastro2-->
</form><!--fechando div painelcadastro2-->
    
asked by anonymous 06.11.2014 / 17:41

2 answers

1

Adds this function to your calculatingmethods method.

enviarViaAjax(){
    var dados = "&datasvenc=" + datasvenc; //Aqui você passa o array e as demais variáveis
    var xmlhttp; //Requisita o ajax
    if (window.XMLHttpRequest)
       xmlhttp=new XMLHttpRequest(); //se chrome/firefox/op vai usar XMLHttpRequest()
    }
    else
    {
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); //se  IE ActiveXObject
    }

    xmlhttp.open("POST","arquivo.php",true);//Informa seu arquivo.php 
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send(dados);//Envia os dados
  }

In the .php file

$dataVencimento = $_POST["datasvenc"]; //Pega a info via post
$dataVencimento = unserialize(base64_decode($dataVencimento));//Decode para array

Just call your sql to save the value. There in javascript for you to send the rest of your variables you do this:

// var data="& variable;=" + variable "; & variable; variable=" + variable;

    
06.11.2014 / 18:12
1

Try using jquery, follow the example below:

var numeros = [0,1,2,3,4,5,6,7,8,9];
var letras = ['a', 'b','c','d'];
$.ajax({
   url : "arquivo.php" ,
   dataType : "json" ,
   data : {
       letras : letras ,
       numeros : numeros 
  },
success:function(){} ,
error : function(){}
});

PHP

<?php
    $numeros = $_REQUEST['numeros']; //Recebe numeros;
    $letras = $_REQUEST['letras'];  //  Recebe letras;

    print_r($numeros);
    print_r($letras);
//Faz o que tem que fazer e retorna em json

    return json_encoder($numeros);

?>

More information on the jquery.com website

  

link

    
06.11.2014 / 21:02