Chamada de função PHP dentro de tag html

Pessoal,

dadas as seguintes tags:

<a href="javascript:;" class="btn btn-xs btdoc btn-default" data-key="<?= $value['id_prestador'] ?>" data-toggle="tooltip" data-placement="top" title="Visualizar/Anexar documentos">

O trecho php chama, no framework, através se uma “lupa” a seguinte função:

protected function getDocs() {
   

    global $prestador;
    
    try {
        
       $query = "SELECT ps.c_razao as prestador, A.prestador_tipo_doc_id, A.prestador_tipo_doc_nome, B.prestador_documento_id, 
                COUNT(B.prestador_documento_id) AS qnt 
                FROM prestador_tipo_doc AS A
                LEFT JOIN prestador_documentos AS B ON (A.prestador_tipo_doc_id = B.prestador_tipo_doc_id AND B.id_prestador = $prestador)
                JOIN prestadorservico as ps on ps.id_prestador = $prestador
                WHERE A.status = 1   
                GROUP BY A.prestador_tipo_doc_id
                ORDER BY A.ordem";

        $this->rh->Prestadorservico->setDefault()->setIdPrestador($prestador)->select("c_razao")->getRow();
        $this->nomePrestador = $this->rh->Prestadorservico->getCRazao();
        
        $exec = $this->db->setDefault()->setQuery(QUERY, $query)->execute();
        if (!$exec->isOk()){
            $this->error->set("Houve um erro na montagem da listagem dos DOCs", E_FRAMEWORK_ERROR);
        }
        
        $this->rsDocs = $exec->getArray();

         if (!include_once(ROOT_APP_TEMPLATE . 'admin/prestador/listar_docs.php')) die('Não foi possível incluir ' . ROOT_APP_TEMPLATE . 'admin/prestador/listar_docs.php');
        
    
    } catch (Exception $ex) {
        $this->setValue(0)->error->set(array(1, __METHOD__), E_FRAMEWORK_WARNING, $ex);
        echo $this->getAlertHtml($this->rh->getAllMsgCode(null, "<br/>"));
        // return $this;
        //echo $this->rh->error->getAllMsgCodeJson(array('code' => 0, 'status' => $this->isOk()));
    }
    
}

Eu não consigo compreender em que atributos das tags mencionadas acima essa função é chamada. Si perfeitamente que "<?= $value['id_prestador'] ?> me retorna a query dessa função. Mas eu preciso implementar outra lupa, com uma query diferente e para isso passar outro parâmetro (recuperar a flag 1 ou 2 em uma certa coluna de uma tabela no meu mySQL)

Alterar a query não é o problema. Meu problema é que, por mais que já tenha buscado, nao consigo entender o que essas tags estão chamando. Ao inspecionar no Chrome, vi que há algo relacionado a um JQuery, mas de modo algum localizo isso no código.

Cara, provavelmente é uma ação atribuída a alguma classe pelo jquery.

1 curtida

Sim. Pela minha pouca experiência não consigo identificar qual. Uso netbeans e nenhuma dessas classes dentro da tag me da uma pista, algo relacionado ao getDocs

Cara, vai precisar debugar isso.

Como exatamente eu posso debugar isso ?

Abre no browser, F12 e boa sorte.

1 curtida

consegui inspeconar e achei esse .btdoc

$(document).on("click", ".btdoc", function () {
        var $this = $(this);
        var key = $this.data("key");
        /*var kids = $this.parents("tr").children();
        var razao = kids.next().next().html();*/
        cria_carregando_modal();
        
        $.post("?class=admin/prestador/gestao", {prestador: key, method: "getDocs"}, function (data) {
            remove_carregando_modal();
            bootDialog(data, 'Lista de Documentos', '', 'info');
        }, 'html');
    });

E criei um semelhante para retornar os documentos dos prestadores de serviço apenas: .btdoc_prestador

$(document).on("click", ".btdoc_prestador", function () {
        var $this = $(this);
        var key2 = $this.data("key2");
        /*var kids = $this.parents("tr").children();
        var razao = kids.next().next().html();*/
        cria_carregando_modal();
        
        $.post("?class=admin/prestador/gestao", {prestador: key2, method: "getDocs_prestador"}, function (data) {
            remove_carregando_modal();
            bootDialog(data, 'Lista de Documentos', '', 'info');
        }, 'html');
    });

Obtive o resultado que esperava, porém com uma formatação muito estranha no modal de saída, além da demora em abrir:

Alguma coisa nessas funções ficou “lambança” Cada vez que clico para abrir o modal, na vez seguinte ele abre duas ou mais vezes o mesmo. O mesmo ocorre no que já estava implementado também.

Muito estranha mesmo. Isso tá me cheirando css.

Precisa ver onde está demorando, na requisição, no retorno ou na renderização da modal.

Creio que a renderização do modal. O interessante é que, assim que carrego a pagina e clico pra chamar o modal, ele demora um pouco mas chama, ainda q bagunçado. Fechando o modal, se eu clicar de novo, ele carrega o mesmo modal duas vezes…

Se clicar uma terceira, serão três modais… e por aí vai.

rendering

Quanto a visualização o problema estava em outro método, o actionExt(), Faltou incluir a o método getDocs_prestador no array de uma variável que verifica se o método seria inserido no frame:

$listMethodsInFrame = array('lista', 'delete', 'getDocs' , 'showDocs', 'subirDocs', 'editarDoc', 'getDadosContrato','saveDadosContrato','getDocs_prestador'); <---- olha o método que estava faltando aqui.
            $this->setDefaultPage('index');
            $this->setMethodInFrame(in_array($this->getMethod(), $listMethodsInFrame) ? 0 : 1);
            $this->setValue(1);