Bom galera, como faço para pegar o valor digitado de input text, onde será calculado noma pagina carregada em uma div onde mostrara o resultado do calculo do frete!
Olá amigo, para pegar um valor de um input text tem varias formas, vou te amostra uma.
<html>
<body>
<input type="text" id="campo" />
<div id="campoDoCalculo">
</div>
<script>
var texto = document.getElementById("campo");
var campoDoCalculo = document.getElementById("campoDoCalculo")
//evento dispara quando retira o foco do campo texto
texto.onblur = function(){
campoDoCalculo.innerHTML = "<p>"+texto.value+"</p>";
}
</script>
</body>
</html>
<html>
<body>
<input type="text" id="campo" name="campo"/>
<div id="campoDoCalculo">
</div>
<input type="button" id="btnCalc" onclick="calcula(campo.value)">
<script>
function calcula(valor){
$("#campoDoCalculo").html(valor); //use jquery para mostrar o valor digitado ao clicar no botão
}
</script>
</body>
</html>
Bom estou tentando aqui, mas ainda não consegui resolver o meu problema o que estou querendo e pegar o valor digitado do cep, passar para a pagina que vai calcular exemplo calcula.php e retornar dentro da DIV…
Do client o server sao n passos, fale pontualmente onde está em dúvida no momento.
Minha duvida e a seguinte, tenho um campo de texto e um botão, na hora que eu clicar o botão pegará o valor que o usuário digitou no campo de texto, quando eu adicionei a classe de frete passando via post para outra pagina funciona, estou com duvida de como fazer na mesma, já carregar dentro de uma div a pagina responsável pelo calculo, porem não estou conseguindo passar o CEP digital para fazer o mesmo!
E o erro que está dando quando aperto para fazer o calculo é:
Notice: Undefined index: cep in C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\grafica\calculafrete.php on line 7
Notice: Trying to get property of non-object in C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\grafica\calculafrete.php on line 25
Ocorreu um erro: CEP de destino invalido.
na linha 25 do calculafrete.php se encontra o retorno do valor do frete, ou seja como não está passando o CEP não consigo efetuar o calculo
Codigo responsalvel por carregar a pagina dentro da DIV
<script type="text/javascript">
$(document).ready(function() {
$("a").click(function() {
$("#resposta").load("calculafrete.php");
});
});
</script>
<script type="text/javascript">
$(document).ready(function() {
var campo = document.getElementById('cep');
var calculafrete = $(this).attr('href'); // pega o valor do atributo href
$("a").click(function(event){
event.preventDefault();
$("div").load(calculafrete); // careega a conteudo
});
});
</script>
pagina que uso para calcular o frete
require('classes/frete.class.php');
$frete = new frete();
$frete->getCep_origem();
$frete->setCep_destino($_GET['cep']);
/*
* TIPO DE SERVIÇO
* VALORES VÁLIDOS:
* pac
* sedex
* sedex 10
* sedex a cobrar
*/
$frete->defineServico('sedex');
/*PESO EM KG (EX: SE FOR 500gr INFORME 0.5)*/
$frete->setPeso('1');
$retorno = $frete->calcular();
$valormercadoria = $frete->getValor();
$valorfrete = $retorno->Valor;
$total = $valormercadoria + $valorfrete;
if($frete->getErro()){
die("Ocorreu um erro: " . $frete->getErro());
}
echo "Informacoes do frete com origem ". $frete->getCep_origem() ." e destino ".
$frete->getCep_destino() ." <br />";
echo "Valor do frete: $retorno->Valor reais <br />";
echo "Prazo para entrega: $retorno->PrazoEntrega dias <br />";
echo "Entrega domiciliar? $retorno->EntregaDomiciliar <br />";
echo "Entrega sabado? $retorno->EntregaSabado <br />";
echo "Valor total: ". $total ." reais";
Francisco_Chaves testei o seu código onde pega o valor digitado ta funcionando como posso passar ele para uma variável php
Oi @William_Rodrigues_Vi , eu utilizei um exemplo JQuery/Ajax com PHP, para realizar requisições assíncronas ao servidor, retornando o valor sem precisar realizar a atualização da página.
HTML
<div>
<p>Nome</p>
<input type="text" id="nome" name="nome" />
<p>Idade</p>
<input type="text" id="idade" name="idade" />
<br />
<input type="button" value="Send" id="botao" name="botao" />
<br />
<span id="resultado"></span>
</div>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
var nome = document.getElementById("nome");
var idade = document.getElementById("idade");
var botao = document.getElementById("botao");
//evento dispara quando clicar
botao.onclick = function () {
processar(nome.value, idade.value);
};
function processar(nome, idade) {
$.ajax({
url: 'processar.php',
type: 'POST',
data: {
n: nome,
i: idade
},
dataType: "html",
beforeSend: function () {
console.info("ENVIANDO...");
$("#resultado").html("ENVIANDO...");
}
})
.done(function (msg) {
console.info("OK", msg);
$("#resultado").html(msg);
})
.fail(function (jqXHR, textStatus, msg) {
console.error("ERRO");
alert(msg);
});
}
</script>
PHP
$nome = $_POST["n"];
$idade = $_POST["i"];
function EnviarMsg($n, $i){
return "Olá {$n} sua idade é {$i}!";
}
echo EnviarMsg($nome, $idade);
Fontes: