2017-02-16 1 views
2

다음과 같이 시작하십시오 : 웹 코딩 기술은 거의 존재하지 않습니다. 단지 HTML을 사용하기 전에 약간의 HTML을했습니다 ... PHP로 된 첫 번째 단계가 방금 만들어졌습니다.shell_exec 명령에 jscolor 결과 제출

나의 목표는 : 색상 선택기를 사용하여 선택한 값을 파이썬 스크립트의 인수로 보내는 것.

jscolor picker libary (http://jscolor.com/examples/)를 사용할 수 있었고 php에서 (color) 인수로 파이썬 스크립트를 실행할 수도있었습니다.

내 문제는 지금 :

어떻게 exec 명령 (LED_color)에 색 문자열 (16 진수-STR)를 제출하나요?

<?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> 

https://i.stack.imgur.com/1cXRn.png

답변

0

귀하의 색상 선택 입력은 PHP 코드와 일치하는 name 속성을 필요로하고 또한 <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> 
+0

답장을 보내 주셔서 감사합니다. 불행히도 여전히 작동하지 않습니다. 버튼을 클릭하면 스크립트는 항상 'LED_color'' FFFFFF'의 초기 값으로 호출됩니다. 그 후 색상 선택기가 초기 값 '000000'으로 돌아갑니다. – Marcel

+0

업데이트 된 답변보기 – miken32

+0

대단히 감사합니다! 이제는 매력처럼 작동합니다. – Marcel