Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde, por favor me ajudem com uma situacao que nao sei como proceder em linguagens web
Tenho dois forms na mesma tela, ao selecionar o cliente e clicar no botao buscar dados, as informacoes que eu pegar no mysql vao "abastecer" os campos do segundo formulario, e entao enviadas para a inclusao utilizando um outro botao no final da pagina.
Nao sei como atualizar as informacoes desses campos na tela, e que posteriormente serao enviados para o banco de dados incluindo as novas informacoes.
Agradeço sugestoes sobre a tela enviada.

>
3 minutos atrás, ShadowDLL disse:
Você pode fazer o mesmo com AJAX.
sim, consegui fazer quase tudo com ajax so que ainda nao consegui pegar as variaveis apenas listo elas na tela.
<script>
function buscar2(id_cliente)
{
//O método $.ajax(); é o responsável pela requisição
$.ajax
({
//Configurações
type: 'POST',//Método que está sendo utilizado.
dataType: 'html',//É o tipo de dado que a página vai retornar.
url: 'busca2.php',//Indica a página que está sendo solicitada.
//função que vai ser executada assim que a requisição for enviada
beforeSend: function () {
$("#dados2").html("Carregando...");
},
data: {id_cliente: id_cliente},//Dados para consulta
//função que será executada quando a solicitação for finalizada.
success: function (msg)
{
$("#dados2").html(msg);
$("#valor_fixo_cliente").val(html.$valor_hr_viagem);
}
});
}
$('#buscar2').click(function () {
buscar2($("#id_cliente").val())
});
acho que o problema esta nesta linha abaixo mas nao sei como proceder:
$("#dados2").html(msg);
$("#valor_fixo_cliente").val(html.$valor_hr_viagem);

Por favor, execute o código abaixo
e envie-me as informações que
estarão presentes no console.
CÓDIGO:
<script>
function buscar2(id_cliente)
{
//O método $.ajax(); é o responsável pela requisição
$.ajax
({
//Configurações
type: 'POST',//Método que está sendo utilizado.
dataType: 'html',//É o tipo de dado que a página vai retornar.
url: 'busca2.php',//Indica a página que está sendo solicitada.
//função que vai ser executada assim que a requisição for enviada
beforeSend: function () {
$("#dados2").html("Carregando...");
},
data: {id_cliente: id_cliente},//Dados para consulta
//função que será executada quando a solicitação for finalizada.
success: function (msg)
{
console.log (msg);
$("#dados2").html(msg);
//$("#valor_fixo_cliente").val(html.$valor_hr_viagem);
}
});
}
$('#buscar2').click(function () {
buscar2($("#id_cliente").val())
});
Se possível, envie também o código
presente em: **busca2.php**>
18 horas atrás, ShadowDLL disse:
Por favor, execute o código abaixo
e envie-me as informações que
estarão presentes no console.
CÓDIGO:
<script>
function buscar2(id_cliente)
{
//O método $.ajax(); é o responsável pela requisição
$.ajax
({
//Configurações
type: 'POST',//Método que está sendo utilizado.
dataType: 'html',//É o tipo de dado que a página vai retornar.
url: 'busca2.php',//Indica a página que está sendo solicitada.
//função que vai ser executada assim que a requisição for enviada
beforeSend: function () {
$("#dados2").html("Carregando...");
},
data: {id_cliente: id_cliente},//Dados para consulta
//função que será executada quando a solicitação for finalizada.
success: function (msg)
{
console.log (msg);
$("#dados2").html(msg);
//$("#valor_fixo_cliente").val(html.$valor_hr_viagem);
}
});
}
$('#buscar2').click(function () {
buscar2($("#id_cliente").val())
});
Se possível, envie também o código
presente em: **busca2.php**
Grato pelas informacoes,
Fiz as mudanças e nao apareceu nada diferente, entao dei uma olhada no diretorio pra ver se havia criado o arquivo console.log e tambem na pasta do site e tambem nao encontrei.
segue o buscar2.php
<?php header('Content-Type: text/html; iso-8859-1');?>
<?php
require('conexao_dbo.php');$host_local = "localhost";
$db_local = "xcomp_entregas";
$user_local = "root";
$pass_local = "";
try {
$arquivo = new PDO("mysql:dbname=$db_local;host=$host_local", $user_local, $pass_local);
} catch (PDOException $e) {
$error_mensagem = $e->getMessage() . "<br/>";
echo "Error : " . $error_mensagem;
exit();
}$palavra = $_POST['id_cliente'];
$sql = "SELECT * FROM clientes WHERE id='$palavra'";
$sql = $arquivo->query($sql);
?>
<section class="panel col-lg-9">
<header class="panel-heading">
Dados da busca:
</header>
<?php
if($sql->rowCount()>0) {
?>
<table class="table table-striped table-advance table-hover">
<tbody>
<tr>
<th><i class="icon_profile"></i> valor_hr_viagem</th>
<th><i class="icon_profile"></i> valor_por_km</th>
<th><i class="icon_mail_alt"></i> valor_apos_18</th>
<th><i class="icon_profile"></i> valor_sabado</th>
<th><i class="icon_mail_alt"></i> valor_domingo</th>
</tr>
<?php
foreach($sql->fetchAll() as $linha){
$valor_hr_viagem = $linha['valor_hr_viagem'];
$valor_por_km = $linha['valor_por_km'];
$valor_apos_18 = $linha['valor_apos_18'];
$valor_sabado = $linha['valor_sabado'];
$valor_domingo = $linha['valor_domingo'];
$valor_fixo_cliente = $linha['valor_hr_viagem'];
?>
<tr>
<td><?=$linha['valor_hr_viagem'];?></td>
<td><?=$linha['valor_por_km'];?></td>
<td><?=$linha['valor_apos_18'];?></td>
<td><?=$linha['valor_sabado'];?></td>
<td><?=$linha['valor_domingo'];?></td>
</tr>
<?php }?>
</tbody>
</table>
<?php }else{?>
<h4>Nao foram encontrados registros com esta palavra.</h4>
<?php }?>
</section>
Retorno do console
The specified value "17/01/2020 11:47:40" does not conform to the required format, "yyyy-MM-dd".
xcomp_entregas_entregas_adicionar.php:21 GET http://www.plataformaxcomp.com.br/xcomp_entregas/font-awesome/css/font-awesome.min.css net::ERR_ABORTED 404 (Not Found)
xcomp_entregas_entregas_adicionar.php:220 GET http://www.plataformaxcomp.com.br/xcomp_entregas/jquery.2.1.3.min.js net::ERR_ABORTED 404 (Not Found)
Chart.min.js:7 Uncaught TypeError: Cannot read property 'length' of null
at Object.acquireContext (Chart.min.js:7)
at ni.construct (Chart.min.js:7)
at new ni (Chart.min.js:7)
at chart-area-demo.js:32
acquireContext @ Chart.min.js:7
construct @ Chart.min.js:7
ni @ Chart.min.js:7
(anonymous) @ chart-area-demo.js:32
Chart.min.js:7 Uncaught TypeError: Cannot read property 'length' of null
at Object.acquireContext (Chart.min.js:7)
at ni.construct (Chart.min.js:7)
at new ni (Chart.min.js:7)
at chart-pie-demo.js:7
acquireContext @ Chart.min.js:7
construct @ Chart.min.js:7
ni @ Chart.min.js:7
(anonymous) @ chart-pie-demo.js:7
xcomp_entregas_entregas_adicionar.php:220 GET http://www.plataformaxcomp.com.br/xcomp_entregas/jquery.2.1.3.min.js net::ERR_ABORTED 404 (Not Found)
xcomp_entregas_entregas_adicionar.php:241
<section class="panel col-lg-9">
<header class="panel-heading">
Dados da busca:
</header>
<table class="table table-striped table-advance table-hover">
<tbody>
<tr>
<th><i class="icon_profile"></i> valor_hr_viagem</th>
<th><i class="icon_profile"></i> valor_por_km</th>
<th><i class="icon_mail_alt"></i> valor_apos_18</th>
<th><i class="icon_profile"></i> valor_sabado</th>
<th><i class="icon_mail_alt"></i> valor_domingo</th>
</tr>
<tr>
<td>120.1</td>
<td>190.9</td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</section>
Ele mostra as informacoes na tela mas nao consigo pegar as variaveis separadas apos retornarSegue exemplo, abaixo:
INDEX.PHP
<?php require "conexao_dbo.php"; ?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title> EXAMPLE </title>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" />
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="row">
<div class="col" style="padding-top: 20px">
<form method="post">
<div class="form-group">
<label for="nome">Nome</label>
<select class="form-control" id="nome">
<option>-- SELECIONAR --</option>
<?php
$clientes = $arquivo->query("SELECT id, nome FROM clientes");
foreach ($clientes->fetchAll() as $key) { ?>
<option value="<?php echo $key['id'] ?>"><?php echo $key['nome'] ?></option>
<?php } ?>
?>
</select>
</div>
<div id="info col">
<table class="table table-striped table-advance table-hover">
<tbody>
<tr>
<th><i class="icon_profile"></i> valor_hr_viagem</th>
<th><i class="icon_profile"></i> valor_por_km</th>
<th><i class="icon_mail_alt"></i> valor_apos_18</th>
<th><i class="icon_profile"></i> valor_sabado</th>
<th><i class="icon_mail_alt"></i> valor_domingo</th>
</tr>
<tr>
<td id="valor_hr_viagem">R$</td>
<td id="valor_por_km">R$</td>
<td id="valor_apos_18">R$</td>
<td id="valor_sabado">R$</td>
<td id="valor_domingo">R$</td>
</tr>
</tbody>
</table>
</div>
</form>
</div>
</div>
</div>
<script>
$(function()
{
$("#nome").on ( 'change', function()
{
var id = $(this).val();
$.ajax (
{
dataType:"JSON",
type:"POST",
data:{
id_cliente:id
},
url:"busca2.php",
success: function (dados)
{
if ( dados ) {
manipula(dados);
}
}
});
});
});
function manipula(dados)
{
$("#valor_hr_viagem").text('R$ ' + dados.valor_hr_viagem);
$("#valor_por_km").text('R$ ' + dados.valor_por_km);
$("#valor_apos_18").text('R$ ' + dados.valor_apos_18);
$("#valor_sabado").text('R$ ' + dados.valor_sabado);
$("#valor_domingo").text('R$ ' + dados.valor_domingo);
}
</script>
</body>
</html>
**BUSCA2.PHP**
<?php
require "conexao_dbo.php";
if ( $_POST['id_cliente'] )
{
$busca = $arquivo->query ("
SELECT * FROM clientes WHERE id = {$_POST['id_cliente']}
");
// IMPORTANTE PARA MANIPULACAO DOS DADOS
// NO JAVASCRIPT
echo json_encode(
$busca->fetch(PDO::FETCH_OBJ)
);
}
?>vou testar , agradeço a ajuda
Qualquer dúvida envie mensagem
que trabalharemos no mesmo.
Ainda nao consegui pegar os campos e colocar no formulario, no buscar3 tudo esta com json_encode
Segue o retorno do console
10{"valor_hr_viagem":"10","valor_por_km":"8","valor_apos_18":"7","valor_sabado":"6","valor_domingo":"5"}
Você pode fazer o mesmo com AJAX.