Ir para conteúdo

POWERED BY:

Arquivado

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

eriksonsr

Função JavaScript não recebe uma string vinda do PHP.

Recommended Posts

Bom dia! Galera eu tenho uma variável no PHP em que o valor dela é uma string que contém o nome de uma página, eu precisa passar ela para uma função JavaScript que é acionada em um evento onclick. Essa função recebe dois parâmetros, id e pag, id é um inteiro e está funcionando, já a string não. Quando eu tiro o segundo parâmetro que é a string, funciona normalmente.

Segue o código da função JavaScript e da página PHP.
JavaScript:

 

function confirma(id, pag){
    var id=id;
    var pag=pag;
    var decisao=confirm("Deseja realmente deletar o registro?");
    if(decisao){
        request=createRequest();
        if(request==null){
        alert("Incapaz de criar a solicitação");
        } else {
        var url="../deleta/"+pag+"?id="+id;
        request.open("GET",url,true);
        request.send(null);
        request.onreadystatechange=msgRetorno;
        }
    }
}


PHP:

 

 

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>API - Edição de Unidade Operacional</title>
        <script type="text/javascript" src="../JS/Utils.js"></script>
        <script type="text/javascript" src="../JS/AjaxDeletar.js"></script>
    </head>
    <body>
<?php
    include '../includes/conectaDB.php';
       
    mysql_query("SET NAMES 'utf8'");
    mysql_query('SET character_set_connection=utf8');
    mysql_query('SET character_set_client=utf8');
    mysql_query('SET character_set_results=utf8');
    
    $pag="deletaEntidade.php";
    $sql="SELECT * FROM entidades";
    $selectEntidade=  mysql_query($sql);

    $nLinha=1;
    echo "<table border='3px'><tr bgcolor='#87E074'><th>N° DA LINHA</th><th>NOME</th><th>DELETAR</th><th>EDITAR</th></tr>";
    while($i = mysql_fetch_assoc($selectEntidade)){
         $entidade = $i['nome'];
         $id=$i['id_entidade'];
         if($nLinha%2==0){
             echo "<tr><td align='center'>$nLinha</td><td>$entidade</td><td><input type='button' value='Deletar' onclick='confirma($id, $pag)'></td><td><input type='button' value='Alterar' class='deleta'></td></tr>";
         }
         else {
             echo "<tr bgcolor='#DBEAF9'><td align='center'>$nLinha</td><td>$entidade</td><td><input type='button' value='Deletar' onclick='confirma($id, $pag)'></td><td><input type='button' value='Alterar' class='deleta'></td></tr>";
         }
      $nLinha++;
}
echo "</table>";
?>

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

             echo "<tr><td align='center'>$nLinha</td><td>$entidade</td><td><input type='button' value='Deletar' onclick=\"confirma($id, '$pag')\"></td><td><input type='button' value='Alterar' class='deleta'></td></tr>";

se é string,precisa de aspas.

 

Mas essa é uma forma muito muito deselegante de resolver.

O seu js não deveria ficar incorporado no html, e vc poderia ler atributos do DOM, em vez de imprimir com php dentro do js.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tentei colocar com as apas, mas não deu certo, também tentei converter o parametro para string no JS, mas também não deu.

Sim, sei que deveria fazer tudo isto direto no JS com o DOM, mas como aqueles campos ali estão sendo criados dinamicamente com o PHP e fiquei meio confuso sobre como obter o campo especifico que queria, acabei fazendo no HTML mesmo. Depois que conseguir resolver isto, vou tentar fazer tudo isto no JS mesmo com o DOM.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O seu problema com aspas foi provavelmente porque você não 'escapou' as aspas como o William Bruno já fez pra você.

 

É só usar o onclick que ele passou que é sucesso =)

onclick=\"confirma($id, '$pag')\"

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.