Ir para conteúdo

POWERED BY:

Arquivado

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

vhuber

Shellexec no Onclick

Recommended Posts

Bom dia,
estou tendo que executar um shell exec passando um valor como parametro no onlick do botao e retorna os dados em array.
Tentei fazer em php assim:


$comando = "asterisk -rx 'sip show peer ".$sql[$i]['RAMAL']."'";

<td width=\"20\" align=\"center\"><a href=\"#\" onclick=\"".exec($comando, $arrayexec)."\" class=\"showlog\" info=\"".str_replace("\n","",$boxdta)."\"><img src=\"img/icons/view.png\" alt=\"\"></a></td>";

Porém não da certo.

Me falaram que tem q ser em javascript, porem nao entendo mta coisa.
Fiz algo do tipo:


<td width=\"20\" align=\"center\"><a href=\"#\" onclick=\"executar(".$sql[$i]['RAMAL'].")\" class=\"showlog\" info=\"".str_replace("\n","",$boxdta)."\"><img src=\"img/icons/view.png\" alt=\"\"></a></td>";
E no javascript nao sei o que botar
function executar(id){ ??????????????? }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se está usando um botão com a tag <a href... pode colocar na tag mesmo como um link chamando uma página e ativando seu comando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se está usando um botão com a tag <a href... pode colocar na tag mesmo como um link chamando uma página e ativando seu comando.

 

Humm, então, mas ai eu teria que mudar o padrao de programação que a empresa segue.

O maximo que posso eh criar uma classe.

 

Então, existe um arquivo rpc.php que eh usado por todas as paginas:

 

fiz assim:

function executar(id){
$.post("rpc.php?module=cramais&cmd=executar", [ 'ramal' : id ], function(data){
parse(data);
});
}
E no rpc.php
case "cramais":
    
    switch ($_REQUEST["cmd"]) {
    case "executar":
    $arrayexec = array();
    $ramal = $param['RAMAL'];
    exec("asterisk -rx 'sip show peer ".$ramal."'", $arrayexec);
    exit(json_encode($arrayexec));
    break;
 }
    break;

 

Mas nao funciona, alguem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

No PHP não tenho como te ajudar que sou quase nulo

 

Agora o javascript está faltando então já que quer com o onclick, segue:

 


function executar(id){ $(function(){ $.post("rpc.php?module=cramais&cmd=executar", { 'ramal' : id }, function(data){ return true; }); }); }

Não sou bom em PHP, mas para resgatar o valor de "ramal" será via post, pois está enviando via post ai e usando jQuery..

 

$_POST['ramal']

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

No PHP não tenho como te ajudar que sou quase nulo

 

Agora o javascript está faltando então já que quer com o onclick, segue:

 


function executar(id){ $(function(){ $.post("rpc.php?module=cramais&cmd=executar", { 'ramal' : id }, function(data){ return true; }); }); }

Não sou bom em PHP, mas para resgatar o valor de "ramal" será via post, pois está enviando via post ai e usando jQuery..

 

$_POST['ramal']

Opa Ted, ta no caminho certo, tentei com sua ajuda e vendo o debug do console a unica coisa que notei, eh que nao passou como parametro o ramal, ele me retorna uma mensagem do shellexec como se eu tivesse digitado somente "sip show peer" e nao "sip show peer $ramal", sabe pq?

 

Soh pra constar o rpc.php ta assim:

 

 

case "cramais":
switch ($_REQUEST["cmd"]) {
case "executar":
$arrayexec = array();
$ramal = $_POST['RAMAL'];
exec("asterisk -rx 'sip show peer ".$ramal."'", $arrayexec);
exit(json_encode($arrayexec));
break;
}
break;

Compartilhar este post


Link para o post
Compartilhar em outros sites

É como falei, precisa ser via post, mudou essa linha?


$ramal = $param['RAMAL'];

para:


$ramal = $_POST['ramal'];

Verifica também se na hora que clica está passando a variável na função

Aconselho a colocar uma aspa para enviar via string o parametro

 


onclick=\"executar(\"".$sql[$i]['RAMAL']."\")

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Opa Ted, ta no caminho certo, tentei com sua ajuda e vendo o debug do console a unica coisa que notei, eh que nao passou como parametro o ramal, ele me retorna uma mensagem do shellexec como se eu tivesse digitado somente "sip show peer" e nao "sip show peer $ramal", sabe pq?

Soh pra constar o rpc.php ta assim:

 

 

case "cramais":
switch ($_REQUEST["cmd"]) {
case "executar":
$arrayexec = array();
$ramal = $_POST['RAMAL'];
exec("asterisk -rx 'sip show peer ".$ramal."'", $arrayexec);
exit(json_encode($arrayexec));
break;
}
break;

Alterei sim para $_post['RAMAL']

E a string ta certa, ja testei dando um alert no id para ver se tava chegando no javascript corretamente

onclick=\"executar(".$sql[$i]['RAMAL'].")\"

 

Não sei oq ta dando errado que aparentemente nao ta chegando no rpc.php =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei que o PHP tinha problemas com maiusculas e minusculas/;

 


$ramal = $_POST['ramal'];

Faz um teste no Javascript, usa o console nas variáveis, e se estiver imprimindo tudo certo, ai já é o PHP, não posso lhe ajudar nele!

 

function executar(id){
$(function(){
$.post("rpc.php?module=cramais&cmd=executar", { ramal : id }, function(data){
console.log(id);
console.log(data);
return true;
});
});
}

 

OBS, removi a aspas de ramal, acho que pode ser isso, veja ai!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei que o PHP tinha problemas com maiusculas e minusculas/;

 


$ramal = $_POST['ramal'];

Faz um teste no Javascript, usa o console nas variáveis, e se estiver imprimindo tudo certo, ai já é o PHP, não posso lhe ajudar nele!

 

function executar(id){
$(function(){
$.post("rpc.php?module=cramais&cmd=executar", { ramal : id }, function(data){
console.log(id);
console.log(data);
return true;
});
});
}

 

OBS, removi a aspas de ramal, acho que pode ser isso, veja ai!

Perfeito amigo, funcionou.

Mas pra que serve o console.log?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para imprimir no console do navegador!

 

Segue link do Mestre William Bruno! http://wbruno.com.br/2011/03/31/como-debugar-javascript-firefox-erros-comuns/

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.