2013-04-14 5 views
0

내가 작업 한 코드는 일단 버튼을 클릭하면 두 개의 모터가 멈추기 위해 다른 버튼을 누를 때까지 계속 스핀 할 것입니다. 모터를 돌리기 위해 버튼을 누르고있을 수 있지만, 일단 버튼을 놓으면 모터가 멈추고 싶습니다. 내 remoteControl.php 파일의자바 스크립트를 사용하는 mousedown 이벤트

부분 :

$action = $_GET['action']; 
$pin = mysql_real_escape_string($_GET['pin']); 
     if ($action == "forward"){ 
     $setting = "1"; 
     mysql_query("UPDATE pinStatus SET pinStatus='$setting' WHERE pinNumber='17';"); 
     mysql_query("UPDATE pinStatus SET pinStatus='$setting' WHERE pinNumber='22';"); 
     mysql_close(); 
     header('Location: remoteControl.php'); .......... 
........ 
<form action="remoteControl.php" method="get"> 
<input id="forward" type="image" src="uparrow.jpg" IMG STYLE="position:absolute; TOP:150px; LEFT:170px; WIDTH:50px; HEIGHT:50px;"> 
<input type=hidden name="action" value="forward"> 
</form> 

자바 스크립트 내가 작업을 얻으려고이 :

<head> 
    <script type="text/javascript"> 
     function OnButtonDown (button) { 
      "can't figure out what to put"; 
     } 
     function OnButtonUp (button) { 
      "can't figure out what to put"; 
     } 

     function Init() { 
      var button = document.getElementById ("forward"); 
      if (button.addEventListener) { // all browsers except IE before version 9 
       button.addEventListener ("mousedown", function() {OnButtonDown (button)}, false); 
       button.addEventListener ("mouseup", function() {OnButtonUp (button)}, false); 
      } 
      else { 
       if (button.attachEvent) { // IE before version 9 
        button.attachEvent ("onmousedown", function() {OnButtonDown (button)}); 
        button.attachEvent ("onmouseup", function() {OnButtonUp (button)}); 
       } 
      } 
     } 
    </script> 
</head> 
<body onload="Init()"> 
+0

무엇 "모터"소리 야? – Ian

+0

그래서 이미지를 회전시키는 코드를 찾으십니까? – iConnor

+0

불명확해서 죄송합니다. 나는 라즈베리 파이를 만들고있어. 나는 그것을 웹 서버로 사용하고 있으며 라즈베리에는 GPIO (출력 핀)가 있는데, DC 모터를 구동하거나 회전시키는 데 사용하고 있습니다. 업 로우 이미지를 클릭하면 DC 모터를 회전시키는 명령을 보냅니다. – Bros

답변

1

마우스를 아래로 전화 할 때 그것을 OnButtonDown하고있는 경우 OnButtonUp을 호출합니다. 그게 효과가 있다면, 유일한 문제는 그 상태에 DB를 업데이 트하기 위해 그 기능에 무엇을 해야할지 모르겠다 (나는 DB의 상태를 확인하고 GPIO를 업데이 트하는 일종의 컨트롤러가 있다고 가정합니다 상태).

DB를 업데이트하려면 GET 매개 변수를 사용하는 remoteControl.php 파일을 호출해야합니다. 이것은 jquery의 ajax 함수를 사용하여 수행 할 수 있습니다.

<head> 
<!-- First we include jquery library. In this case from Google CDN --> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 

<script type="text/javascript"> 
    function OnButtonDown (button) { 
     //We pass the parameter forward to remoteControl.php 
     $.ajax({ 
      data: action=forward, 
      url: 'remoteControl.php', 
      type: 'get', 
      success: function (response) { 

      } 
     }); 
    } 
    function OnButtonUp (button) { 
     //Here the same as in OnButtonDown but passing another parameter 
    } 

    function Init() { 
     var button = document.getElementById ("forward"); 
     if (button.addEventListener) { // all browsers except IE before version 9 
      button.addEventListener ("mousedown", function() {OnButtonDown (button)}, false); 
      button.addEventListener ("mouseup", function() {OnButtonUp (button)}, false); 
     } 
     else { 
      if (button.attachEvent) { // IE before version 9 
       button.attachEvent ("onmousedown", function() {OnButtonDown (button)}); 
       button.attachEvent ("onmouseup", function() {OnButtonUp (button)}); 
      } 
     } 
    } 
</script> 

+0

당신은 남자입니다 !!!!!! 버튼 작동 !!!!! 데이터, URL 및 유형에 대해 ''대신 ''을 사용해야했습니다. 이미지 파일을 사용하고 있기 때문에 버튼에서 이미지로 변경하여 조금 연마해야합니다. – Bros

+0

스크래치 ... 버튼에서 이미지로 변경할 필요가 없습니다. 모든 설정. Anjz에게 감사드립니다. 당신은 생명의 은인입니다. 이 질문을 어떻게 해결할 수 있습니까? – Bros

+0

대답의 왼쪽에 "확인"버튼이 있습니다. 거기에 클릭하면 올바른 대답으로 받아들입니다. – Anjz

관련 문제