Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

cristianomg

JSON com dois parametros para gerar retorno consulta

Recommended Posts

Boa tarde pessoal.

Preciso passar através do javascript duas variaveis para que meu select retorno pelo JSON a resposta, segue:

 

neste formulário possuo três combo selects que são populados pelo banco, onde um depende do preenchimento do outro. Até ai ok, estão todos sendo preenchidos corretamente.

 

Só que onde grifei em AZUL não sei se devo passar desta forma, para informar os dois campos que desejo passar para gerar o retorno no meu select:

 

$("select[name=totalsprints]").change(function() , $("select[name=cod_projetos]").change(function() {

 

js.script

$(document).ready(function(){
	$("select[name='totalsprints']").change(function() ,  //aqui pego o valor combo select sprint
        $("select[name='cod_projetos']").change(function() //aqui pego o valor combo select idprojeto
                        { 
	var datainicio1 = $("input[name='datainicio_sprint']");
	var dataentrega1 = $("input[name='dataentrega_sprint']");
			
	$( datainicio1 ).val('Carregando...');
	$( dataentrega1 ).val('Carregando...');
			
$.getJSON(
	'function_data_sprint.php',
	{ idprojeto: $( this ).val(),numerosprint: $( this ).val() }, //variaveis a passar para a função
					function( json )
					{
						$( datainicio1 ).val( json.datainicio1 );	
						$( dataentrega1 ).val( json.dataentrega1 );
			
					}
				);
		});
	});

Minha função seria essa :



<?php
	$con = mysql_connect('localhost', 'root', '');
	mysql_select_db('status', $con);

	function retorna( $id , $id2) // variaveis para gerar o resultado no select
	{
		$id = (int)$id;

		$sql = "SELECT * FROM sprint_colaborador WHERE idprojeto = {$id} and numerosprint = {$id2}";
		$query = mysql_query( $sql );
	
		$arr = Array();
		if( mysql_num_rows( $query ) )
		{
			while( $dados = mysql_fetch_object( $query ) )
	         {
        	$arr['datainicio1'] = $dados->datainicio;
	        $arr['dataentrega1'] = $dados->dataentrega;
			}
		}
		else
			$arr[] = 'dados: não encontrado';

		return json_encode( $arr );
	}

/* só se for enviado o parâmetro, que devolve o combo */
if( isset($_GET['idprojeto']) and isset($_GET['numerosprint']))
	echo retorna( $_GET['idprojeto'] , $_GET['numerosprint']);
}
?>

Assim não funciona, onde devo corrigir ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

quase...

 

$("select[name='totalsprints'], select[name='cod_projetos']").change(function() ,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara foi quase então, to ficando bão..kkk

 

Alterei sua observação

$(document).ready(function(){
	$("select[name='cod_projetos'], select[name='totalsprints']").change(function(){
		

Retorno dos dados, na mesma ordem

$.getJSON('function_data_sprint.php',
	{ idprojeto: $( this ).val(),numerosprint: $( this ).val() },function( json )

chamada da function, recebendo estas duas variaveis: function_data_sprint.php

Aqui não sei se ele pegaria?? nestes $id e $id2

function retorna( $id , $id2)
	{
	$id = (int)$id;

$sql = "SELECT * FROM sprint_colaborador WHERE idprojeto ={$id} and numerosprint ={$id2}";
		$query = mysql_query( $sql );
	
		$arr = Array();
		if( mysql_num_rows( $query ) )
		{
			while( $dados = mysql_fetch_object( $query ) )
			{
				$arr['datainicio1'] = $dados->datainicio;
				$arr['dataentrega1'] = $dados->dataentrega;
			}
		}

/* só se for enviado o parâmetro, que devolve o combo */
if( isset($_GET['idprojeto']) and isset($_GET['numerosprint']))   // tá certo assim?
	echo retorna( $_GET['idprojeto'] , $_GET['numerosprint']);  // tá certo assim?
}  

Deixa os campos dos inputs só no carregando... :upset:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quase de novo.. troque:

{ idprojeto: $( this ).val(),numerosprint: $( this ).val() }
por:

{ idprojeto: $("select[name='cod_projetos']").val(),numerosprint: $("select[name='totalsprints']").val() }
se não vc estaria enviando o mesmo valor para os 2 parâmetros.

 

Quando ao só carregando, veja:

http://wbruno.com.br/ajax/como-debugar-ajax-firebug/

Compartilhar este post


Link para o post
Compartilhar em outros sites

o retorno deveria conter os dois correto:

/* só se for enviado o parâmetro, que devolve o combo */
if( isset($_GET['idprojeto']) )
	echo retorna( $_GET['idprojeto'] );
}

acredito que isto aqui: ??

if( isset($_GET['idprojeto']) and isset($_GET['numerosprint'])  )
	echo retorna( $_GET['idprojeto'] , $_GET['numerosprint']);
}

estou vendo sobre o firebug...não sabia disso. Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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