将jscolor结果提交给shell_exec命令

时间:2017-02-16 12:42:47

标签: php variables exec jscolor

首先:我的网络编码技能几乎不存在,我刚刚做了一些HTML很久以前...... 我今天刚刚制作了PHP的第一步。

我的目标是:拥有一个颜色选择器并将拾取的值作为参数发送到python脚本。

我设法使用了jscolor picker libary(like this)并且我也能够使用php中的(颜色)参数运行python脚本。

我现在的问题是:

如何将颜色字符串(hex-str)提交给exec命令(LED_color)?

<?php
    $LED_color="FFFFFF";

    $LED_color=escapeshellarg($LED_color);

    if (isset($_POST['button']))
    {
        $LED_color = $_REQUEST['hex-str'];
        echo shell_exec("sudo /home/pi/LEDscripts/color-by-arg.py $LED_color");
    }
?>


<html>
<head>
    <title>Basic usage</title>
</head>
<body>

<div style="position:absolute; left:280px; top:10px;">
    toString = <span id="hex-str"></span><br />
</div>


<script src="jscolor.js"></script>

Color: <input class="jscolor {closable:true,closeText:'Close me!',onFineChange:'update(this)'}" value="000000">

<script>
function update(picker) {
    document.getElementById('hex-str').innerHTML = picker.toString();
}
</script>

<form method="post">
    <p>
        <button name="button">Submit color</button>
    </p>
</form>

</body>
</html>

http://jscolor.com/examples/

1 个答案:

答案 0 :(得分:0)

您的颜色选择器输入需要name属性以匹配您的PHP代码,并且还需要位于<form>元素内。

<?php
if (!empty($_POST["hex-str"])) {
    $LED_color = escapeshellarg($_POST["hex-str"]);
    echo shell_exec("sudo /home/pi/LEDscripts/color-by-arg.py $LED_color");
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>Basic usage</title>
    <script src="jscolor.js"></script>
</head>
<body>
    <form method="post">
        <p>
            Color:
            <input type="text" name="hex-str" value="000000" class="jscolor" data-jscolor="{closable:true,closeText:'Close me!',onFineChange:'update(this)'}"/>
            toString = <span id="hex-str-display"></span>
        </p>
        <p>
            <button type="submit">Submit color</button>
        </p>
    </form>
    <script>
        function update(picker) {
            document.getElementById('hex-str-display').innerHTML = picker.toString();
        }
    </script>
</body>
</html>