在JS调用上执行PHP的可靠方法?

时间:2014-07-30 18:44:44

标签: javascript php html forms shell

我知道我可以使用AJAX在JS代码中调用和修改HTML。但是,如果我想使用像exec($command, $result);这样的PHP在服务器上执行命令呢?从JS调用PHP以在服务器上运行东西的最佳方法是什么?

我正在考虑创建一个巨大的开关矩阵,在JS端提交表单,然后PHP端的另一个开关来拦截提交 - 并且隐藏HTML中的所有这些表单 - 但这听起来有点过分了我。有什么建议吗?

UPDATE /溶液

我使用了以下JS代码:

function myOnFocus() {
    var myInput= document.getElementById("myInputID");
    $.ajax({ url: '',
        data: {
            "action" : "myActionName", 
            "myInputValue"       : $('#myInputID').val(), 
        },
        type: 'post',
        success: function(output) {
            alert(output);
        }
    });
}

在我使用的PHP中:

if(isset($_POST['action']) && !empty($_POST['action'])) {
    $action = $_POST['action'];
    switch($action) {
        case 'myActionName' : 
            $myInputValue         = $_POST["myInputValue"];
            $command = "--my-server-command/file-that-i-needed-to-run 2>&1";
            exec($command, $results);
            echo " \n".implode($results);
            break;
    }
}

1 个答案:

答案 0 :(得分:4)

  

我知道我可以使用AJAX在JS代码中调用和修改HTML。

没有。您可以使用DOM。

Ajax用于发出HTTP请求并处理来自JavaScript的HTTP响应。

您可以将它们组合起来使用Ajax从服务器获取数据,然后使用DOM将该数据插入到页面中。

  

但是如果我想使用PHP

在服务器上执行命令怎么办?

如果您想在PHP中执行任何操作并从浏览器触发它,那么您需要发出HTTP请求。

  

从JS调用PHP以在服务器上运行东西的最佳方法是什么?

如果你不想加载新页面,那么就是Ajax。

如果要加载新页面,请将location设置为新URL(如果要发出GET请求)或提交表单(如果要发出POST请求或正在使用从一开始就收集用户数据的形式是常用的方法。