Ir para conteúdo
Jefferson andre

Dois forms na mesma pagina, o primeiro enviando dados para o segundo

Recommended Posts

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.

entregas_exemplo_botao_buscar.png

Compartilhar este post


Link para o post
Compartilhar em outros sites
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); 

entregas_exemplo_botao_buscar.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites
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 retornar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue 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)
		);
	}

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qualquer dúvida envie mensagem

que trabalharemos no mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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"}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por ILR master
      Fala pessoal.
       
      Seguinte:
       
      Quero selecionar duas tabelas e mostrar com resultados intercalados. Abaixo segue um código explicando para vcs terem uma ideia.
       
      $consulta = "SELECT A.*, B.* FROM tabela1 A, tabela2 B'";
      $resultado = mysqli_query($conexao, $consulta) or die ("erro");
      while($busca = mysqli_fetch_array($resultado)){
       
      print $busca['cod_evento']; --> traz o código da tabela1 
      print $busca['titulo_evento']; -->  traz o titulo da tabela1
      print $busca['cod_noticia']; --> traz o código da tabela2
      print $busca['titulo_noticia']; --> traz o tituloda tabela2
       
      }
       
      Espero que entendam. Grato
       
    • Por gersonab
      Bom dia
      estou com uma dúvida de como proceder, tenho uma tabela de categoria e uma de subcategoria, a categoria pode ter várias subs, até ai tranquilo, quando faço update de uma sub altero normalmente a quantidade deste, até aí normal, porém me deparei com uma situação um pouco diferente, vou tentar ser o mais claro possível, de certa forma algumas subs são comuns só mudando o nome praticamente, aí eu preciso que ao efetuar o update em umas destas este ocorra nas demais, tipo:
       
      Se o id da sub for 5 , eu preciso fazer o mesmo update nos ids 6 e 7 ;
       
      Se o id da sub for 9 , eu preciso fazer o mesmo update no id 10
       
      se for 2 , fazer o update somente neste
       
      ainda não estou conseguindo ver uma lógica para isso, e ou uma nova coluna para cadastrar em comum nestes casos.
       
      qual seria a melhor opção
    • Por JoaoSilva75
      oi pessoal
       
      se eu entrar no link dos desenvolvedores php pesquisasar quem é programador e enviar uma mesma mensagem para uns 6 ou 8 membros do forum serei advertido   ou é spam ???????
       
      procuro um programador php para me fazer algo 
       
      mas não tem como postar aqui nessa sessão
       
    • Por clovis.sardinha
      Tenho uma consulta de autocomplete no bd que funciona no servidor local e não roda no servidor da web. 
      Ao enviar a consulta no servidor local  aparece no console :Fetch terminou o carregamento: GET ".../Cidade?cidade=sao%20paulo". A pesquisa é feita normalmente.
      Quando mando a mesma pesquisa para o servidor web(locaweb) aparece no console: Fetch terminou o carregamento: GET "..../Cidade?cidade=sao%2520paul".
      O número 25 aparece só no servidor web. Pelo que pesquisei 25 significa %, ou seja, está duplicando o caractere %. 
      Não consegui utilizar nenhuma função para evitar que isto ocorra. Alguém sabe se há alguma configuração no servidor web que possa ser alterada para evitar essa duplicação?
       
    • Por gersonab
      Boa tarde, estou quebrando a cabeça aqui para somar os dados agrupados de vários itens distintos de uma tabela e inserir em outra. tipo :
      $consulta31 = $pdo->query("SELECT SUM(valoror) AS val1, SUM(metros) AS metr, orc, idcatc, idmate FROM orcamencli WHERE orc=$orc GROUP BY idcatc, idmate"); $user331 = $consulta31->fetch(PDO::FETCH_ASSOC); $orcx = $user331['orc']; $idcatcx = $user331['idcatc']; $val1x = $user331['val1']; $metrx = $user331['metr']; $idmatex = $user331['idmate']; o resultado de cada item agrupado eu faria um outro calculo separado para inserir em outra tabela, tipo ...
      a tabela acima eu teria algo assim :
       
      orcx = 01 - 01 - 01 - 01 - 01 - 01 - 01 - 01 - 01
      idcatcx = 11 - 11 - 11 - 11 - 11 - 11 - 11 - 11 - 11
      val1x = 1,00 - 1,00 - 3,00 - 3,00 - 3,00 - 1,00 - 3,00 - 1,00 - 2,00
      metrx =  01 - 01 - 03 - 03 - 03 - 01 - 03 - 01 - 02
      idmatex =  11 - 11 - 21 - 21 - 21 - 31 - 31 - 31 - 31
       
      preciso inserir  na outra tabela o seguinte :
      orc = 01 - 01 - 01
      idcatc = 11 - 11 - 11
      val1 = 2,00 - 9,00 - 7,00 ( aqui não é só a soma dos valores , existe um outro cálculo )
      metr =  02 - 09 - 07
      idmate =  11 -  21 -  31
       
       a dúvida é --> como inserir estes valores separados de uma única vez em outra tabela.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.