2013-10-03 62 views
-3

我有一个iframe可以在用户单击按钮时从控制面板发送命令。使用下面的代码时,由于代码中存在语法错误,用户单击时该按钮没有任何反应。命令中的语法错误

$items['googledotcom'] = array 
     (
      'description'=>'DNS resolution test', 
      '1'=>1, 
      '0'=>0, 
      'fixCommand'=>'EXC service network restart; echo "nameserver 8.8.8.8" >> /etc/resolv.conf; sleep 10; health check', 
     ); 

上面的代码不工作,因为这条线的,:回声 “域名服务器8.8.8.8” >> /etc/resolv.conf中;

但是,当我删除上面的行代码将工作。但我还需要添加上面的行。

对语法的任何建议?

谢谢!

UPDATE

命令格式: enter image description here

doCommand的Javascript:

<script type='text/javascript'> 

function doCommand(command) 
{ 
    var r=confirm("Are you sure you want to \"" + command + "\""); 
    if (!r) 
    { 
     return; 
    } 

    $.post('/device/commands-frame/', { id : '<?=$this->site->id;?>', act : command, command : command }, function(data) 
    { 
     alert('Command has been sent'); 
    }); 
} 
</script> 
+0

你怎么知道这是行不通的? – Phil

+0

当按钮点击时,没有任何反应。否则我会收到警报 – NewPHP

+0

*“没有任何反应”*不是很有帮助。你有没有启用错误报告?试图发出该命令的结果是什么? – Phil

回答

2

试试这个:

<?php 
$items['googledotcom'] = array 
    (
     'description'=>'DNS resolution test', 
     '1'=>1, 
     '0'=>0, 
     'fixCommand'=>"EXC service network restart; echo 'nameserver 8.8.8.8' >> /etc/resolv.conf; sleep 10; curo health check" 
    ); 
    var_dump($items); 
?> 

这说明:

array(1) { ["googledotcom"]=> array(4) { ["description"]=> string(19) "DNS resolution test" [1]=> int(1) [0]=> int(0) ["fixCommand"]=> string(103) "EXC service network restart; echo 'nameserver 8.8.8.8' >> /etc/resolv.conf; sleep 10; curo health check" } } 

现在我测试用下面的小提琴的价值和它的工作: http://jsfiddle.net/EjXmp/

那捣鼓包含以下代码:

$(document).ready(function(){ 

$("#clickme").click(function(){ 
doCommand("EXC service network restart; echo 'nameserver 8.8.8.8' >> /etc/resolv.conf; sleep 10; curo health check"); 
}); 

function doCommand(command) 
{ 
var r=confirm("Are you sure you want to \"" + command + "\""); 
if (!r) 
{ 
    return; 
} 

$.post('/device/commands-frame/', { id : '<?=$this->site->id;?>', act : command, command : command }, function(data) 
{ 
    alert('Command has been sent'); 
}); 
} 

}); 
+0

除了添加一些调试之外,这有什么不同? – Phil

+0

在我的本地主机上测试过,并且正在工作......没有错误......感谢-1;) – Hackerman

+0

OP的代码如何?那*不起作用*? – Phil