将按钮替换为html区域


replace button with html area

新手警报!

我知道我错过了一些基本的东西,但我不知道是什么。。。我有一个表单中有html按钮的页面。表单方法是"post",每个按钮都用于运行主机web服务器上的许多脚本中的一个,这些脚本由php调用(如果是这个词的话)。网页上包括的php脚本是这样的:

<?php
$cmd = $_POST["action"];
if ($cmd=="snap")
{
    exec("sudo ./snap_web.sh");
}
?>

它工作得很好,但作为一个练习,我想用一个图像来代替按钮阵列,并让用户点击图像的特定部分来代替单独的html按钮。我知道如何用"coords"来识别图像的各个部分,但我无法像html按钮那样将这些区域的点击传递到PHP脚本。由于我"只是"想用一个html元素代替另一个,我希望答案很简单,但如果我必须进入js或其他东西,那就顺其自然吧!非常感谢您的帮助。

我会使用jQuery $.post()

PHP代码将被单独放入一个文件中。(process.php)。

<form action="" method="get">
    <img src="someImage.png" onclick="calcCoords()">
</form>

<script>
function calcCoords(){
    /**
     *     Here you get the action via to coords however you are currently doing it.
     */
    var action = 'someAction';
    $.post( "process.php", { action: action } function( data ) {
        $( ".result" ).html( data );
    });
}
</script>

但是,如果您希望表单在没有ajax的情况下提交,那么可以使用javascript强制$_GET提交?

<form action="" method="get">
    <img src="someImage.png" onclick="calcCoords()">
</form>

<script>
function calcCoords(){
    /**
     *     Here you get the action via to coords however you are currently doing it.
     */
    var action = 'someAction';
    window.location = window.location + '?action=' + action;
}
</script>

只需稍微更改您的PHP

<?php
$cmd = isset($_GET["action"]) ? $_GET["action"] : null;
if ($cmd=="snap")
{
    exec("sudo ./snap_web.sh");
}
?>