Get radio button value via jQuery and set in PHP

1

I have to catch a click event on a radio button and pass its value on a PHP variable so I can do a value calculation, I did not have much success, follow my code.

function Tipo_Frete() {
    var frete = $("input[name='tipo_frete']:checked").val();          
    if (frete == "PAC") {
      frete = 'pac'
    }else if(frete == 'SEDEX'){
      frete = 'sedex'
    }        
}  

<?php $frete = "<script>document.write(frete)</script>"; 

What I really need now is for this variable to still be accessed in view , without going through controller . I need a PHP variable to get the value of the button checked, so that in PHP I can do the calculation. How to make all this happen dynamically, without having to submit this together with the form, and treat everything in view ?

    
asked by anonymous 09.10.2015 / 16:40

1 answer

1

The solution is to use AJAX

in your .js (using jquery)

$(document).ready(function(){
   //gatilho para executar o ajax no click do radio (da escolha PAC ou SEDEX)
   $("input[name='tipo_frete']").click(function(){
      $.post('/script_que_calcula.php',{
         //fazendo dessa forma abaixo o seletor pega o valor do radio    selecionado e atribui a variavel com o valor correto
         frete: $("input[name='tipo_frete']").val() == "SEDEX" ? "sedex" : "pac"
      },function(data){
          /*aqui recebemos um objeto json com o valor 
          do frete no atributo 'valor' é evidente que
          a lógica para esse calculo deverá estar em 
          seu script e atualizamos o elemento na 
          view sem atualizar a página (refresh)*/
          $("#valor_frete").val(data.valor);
      },"json");
   });
});

Below we will imagine your script_que_calcula.php

<?php
     $array = array();

     //abaixo está como deveria ser feito o retorno para a
     //requisicao ajax... é claro que deverá conter sua lógica de negócio
     if($_POST['frete']=="sedex"){
        $array("valor" => "valor do sedex");
     }
     else{
        $array("valor" => "valor do pac")
     }

     /*aqui está o retorno sendo 'encodado' 
     para json assim sendo possivel usar no ajax*/
     echo json_encode($array);

is a fairly simple example of using ajax, it's the ideal use to get the solution you want

    
26.10.2015 / 18:32