Explico sim, Marculino:
// * quando o usuário abrir a página, $_GET["idproselect"] vai estar vazio, logo, todo este bloco será ignorado;
// * mas quando a função mudavaluetr faz a requisição ajax para esse mesmo arquivo, ela envia o valor que o usuário
// selecionou, então $_GET["idproselect"] vai estar preenchido e esse bloco será executado;
// * portanto, esse bloco só será executado quando for uma requisição ajax e que tenha sido passado valor para o $_GET["idproselect"]
if(isSet($_GET["idproselect"]) && is_numeric($_GET["idproselect"])){
$idproselect = (int)$_GET["idproselect"];
$idconvite = null;
$check_sql = "SELECT convites_cotacao_idconvite"
. " FROM produto_cotado"
. " WHERE idproduto_cotado = " . $idproselect;
sc_lookup(rs, $check_sql);
// verifica se a consulta realmente retornou a informação
if({rs} && isSet({rs[0][0]})){
$idconvite = {rs[0][0]};
}
// * a função die interrompe a execução do script, dando um "echo" no parâmetro que foi passado à ela;
// * a função json_encode converte uma variável para o formato JSON (ou seja, uma string); para o parâmetro
// que foi passado neste caso, será retornado uma string assim: '{"idconvite":123}';
// * resumindo: o array será convertido para texto, o die vai dar um "echo" nesse texto e depois interromper o script;
// * e como é uma requisição ajax chamada pelo $.getJSON que está no javascript, essa string será transformada em um objeto javascript,
// e assim é possível utilizar o valor que está em idconvite
// * obs: JSON é um "texto" (string) em um formato específico, e é bastante usado para troca de informações entre aplicações;
// * obs2: o die é necessário para que a requisição não execute os comandos que estiverem depois dele, senão seria retornado também todo o HTML;
die(json_encode(Array(
"idconvite" => $idconvite
)));
}
function mudavaluetr(objeto) {
var x = $(objeto).val();
var minhatr = $(objeto).closest("tr")[0];
// * o $.getJSON faz uma requisição ajax para um arquivo e joga o que esse arquivo retornar (o die/echo) na variável response;
// * o primeiro parâmetro é a página que vai receber a requisição, que nesse caso é a mesma que o usuário está (por isso que
// não tem nada antes do ?), mas adicionando o parâmetro "idproselect" via método GET;
// * o segundo parâmetro é uma função que recebe a resposta da requisição (ou seja, aquele die/json_encode), que neste caso é o JSON já
// convertido para objeto javascript novamente
$.getJSON("?idproselect="+x, function(response){
// * aqui, o response já é um objeto javascript contendo a resposta da requisição ajax, então já é possível acessar seus dados;
var idconvite = (response && response.idconvite) || null;
if(idconvite){
minhatr.dataset.idproselect = x;
minhatr.dataset.idconvite = idconvite;
}else{
// No row found
}
});
}
Dá para entender?
E é interessante você estudar sobre AJAX e JSON, entender quando e como utilizá-los, etc. Não é tão complexo quanto parece, e é uma mão na roda.