我知道我可以使用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;
}
}
答案 0 :(得分:4)
我知道我可以使用AJAX在JS代码中调用和修改HTML。
没有。您可以使用DOM。
Ajax用于发出HTTP请求并处理来自JavaScript的HTTP响应。
您可以将它们组合起来使用Ajax从服务器获取数据,然后使用DOM将该数据插入到页面中。
但是如果我想使用PHP
在服务器上执行命令怎么办?
如果您想在PHP中执行任何操作并从浏览器触发它,那么您需要发出HTTP请求。
从JS调用PHP以在服务器上运行东西的最佳方法是什么?
如果你不想加载新页面,那么就是Ajax。
如果要加载新页面,请将location
设置为新URL(如果要发出GET请求)或提交表单(如果要发出POST请求或正在使用从一开始就收集用户数据的形式是常用的方法。