• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] In js php ausführen (exec)

ertlflorian1

New member
Hi liebe Community,

möchte in js einen php Befehl ausführen.
Folgenden:

exec ("sudo sh /home/pi/433/on1.sh")

Wenn die Seite dabei neu geladen wird wäre egal.


Danke im voraus :)
 
Hallo Florian,

was genau möchtest du machen, bzw. was bezweckt diese Abfrage?

LG

ToM
 
Hier ist mal meine komplette Javascript Datei.
(Ist nicht von mir erstellt bin kompletter Neuling)

Also ich möchte wenn hier die Funktion "SendIRCommand" ausgeführt wird die Datei on1.sh auf meinem Raspberry Pi ausführen.
Das funktioniert so: exec ("sudo sh /home/pi/433/on1.sh"

Das Script erstellt mir eine Art virtuelle Fernbedienung mit Buttons und ich möchte wenn ich einen Button anklicke z.B. exec ("sudo sh /home/pi/433/on1.sh" ausgeführt wird.

Habe unten auch die dazugehörige html Datei gepostet :)

Wäre wirklich sehr froh wenn mir wer helfen kann :)


Code:
var size = 20;
var repeat_timer;

function AddRemoteButtonText(num, posx, posy, wx, wy, color, label, remote, command, initial_delay, repeat_delay) 
{
    document.write('<div id="' + num + '" class="button ' + color + '" style="position:absolute; top:' + posy + 'px; left:' + posx + 'px; height:' + wy + 'px; width:' + wx + 'px; line-height: ' + wy + 'px;" align="center">' + label + '</div>');
    document.getElementById(num).onmousedown = function () { SendIRCommand (num,remote,command,initial_delay,repeat_delay) };
    document.getElementById(num).onmouseup = function () { EndSendCommand (num) };
    document.getElementById(num).onmouseleave = function () { EndSendCommand (num) };
}

function AddRemoteButtonPicture(num, posx, posy, wx, wy, color, picture, alt, remote, command, initial_delay, repeat_delay) 
{
    var label;

    label = '<img src="' + picture + '" style="position:absolute; top:' + (wy / 3) + 'px; left:' + (wx / 3) + 'px; width:' + (wx / 3) + 'px; height:' + (wy / 3) + 'px;" alt="' + alt + '">'
    AddRemoteButtonText(num, posx, posy, wx, wy, color, label, remote, command, initial_delay, repeat_delay);
}

function EndSendCommand (id)
{
    clearTimeout (repeat_timer);
}

function SendIRCommand (id,remote,command,initial_delay,repeat_delay)
{
    repeat_timer = setTimeout(function () { SendIRCommand(id, remote, command, repeat_delay, repeat_delay, repeat_delay) }, initial_delay);
    //xhr('get', '/send.cgi', 'remote=' + remote + '&command=' + command);
	




	// Hier soll z.B. dann mittels einer if Abfrage einbestimmter PHP Befehl ausgeführt werden
	// Als Beispiel einfach mal ' exec ("sudo sh /home/pi/433/on1.sh") '




}

function AddLinkButton(posx, posy, wx, wy, color, label, target) 
{
    document.write('<a href="' + target + '" class="button ' + color + '" style="position:absolute; top:' + posy + 'px; left:' + posx + 'px; height:' + wy + 'px; width:' + wx + 'px; line-height:' + wy +'px;">' + label + '</a>');
}





/*@cc_on @if (@_win32 && @_jscript_version >= 5) if (!window.XMLHttpRequest)
window.XMLHttpRequest = function() { return new ActiveXObject('Microsoft.XMLHTTP') }
@end @*/

function xhr(method, url, data, cb, apply_para) {
  method = method.toLowerCase();
  var req;
  req = new XMLHttpRequest();
  req.open(method, url + (data && method == 'get' ? '?' + data : ''), true);
  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  if (method == 'post') {
      req.setRequestHeader("Method", "POST " + url + " HTTP/1.1");
      req.setRequestHeader("Content-Length", data.length);
  }
  req.onreadystatechange = function() {
      if (req.readyState == 4 && req.status == 200) {
              if (cb) {
              cb.apply(null, [req].concat(apply_para));
          }
      }
  }
  req.send(data);
}

var isMobile = {
    Android: function () {
        return navigator.userAgent.match(/Android/i);
    },
    BlackBerry: function () {
        return navigator.userAgent.match(/BlackBerry/i);
    },
    iOS: function () {
        return navigator.userAgent.match(/iPhone|iPad|iPod/i);
    },
    Opera: function () {
        return navigator.userAgent.match(/Opera Mini/i);
    },
    Windows: function () {
        return navigator.userAgent.match(/IEMobile/i);
    },
    any: function () {
        return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
    }
};

HTML:
<!DOCTYPE html>
<html>
    <head>
        <title>433 Remote</title>
        <meta charset="UTF-8">
        <script src="irremote.js" type="text/javascript"></script>
        <link rel="Stylesheet" type="text/css" href="remote.css" />
    </head>
    <body>
    <script type="text/javascript">

        var size = document.documentElement.clientWidth;

        if (!isMobile.any()) {
            size = 600;
            document.write('<style> body{ font-size:18px; } </style>');
        }

		AddLinkButton(0.06 * size, 0.02 * size, 0.20 * size, 0.10 * size, 'gray', 'TV', 'tv.html');
		AddLinkButton(0.29 * size, 0.02 * size, 0.20 * size, 0.10 * size, 'gray', 'LED', 'tv.html');
		AddLinkButton(0.52 * size, 0.02 * size, 0.20 * size, 0.10 * size, 'gray', 'HIFI', 'tv.html');
        AddRemoteButtonText(1, 0.06 * size, 0.16 * size, 0.20 * size, 0.20 * size, 'black', '1 ON', '433', '1on', 1000, 300);
        AddRemoteButtonText(2, 0.06 * size, 0.39 * size, 0.20 * size, 0.20 * size, 'black', '2 ON', '433', '2on', 1000, 300);
        AddRemoteButtonText(3, 0.06 * size, 0.62 * size, 0.20 * size, 0.20 * size, 'black', '3 ON', '433', '3on', 1000, 300);
        AddRemoteButtonText(4, 0.06 * size, 0.85 * size, 0.20 * size, 0.20 * size, 'black', '4 ON', '433', '4on', 1000, 300);
		
        AddRemoteButtonText(5, 0.29 * size, 0.16 * size, 0.20 * size, 0.20 * size, 'green', '1 OFF', '433', '1off', 1000, 300);
        AddRemoteButtonText(6, 0.29 * size, 0.39 * size, 0.20 * size, 0.20 * size, 'green', '2 OFF', '433', '2off', 1000, 300);
        AddRemoteButtonText(7, 0.29 * size, 0.62 * size, 0.20 * size, 0.20 * size, 'green', '3 OFF', '433', '3off', 1000, 300);
        AddRemoteButtonText(8, 0.29 * size, 0.85 * size, 0.20 * size, 0.20 * size, 'green', '4 OFF', '433', '4off', 1000, 300);
             

    </script>
    </body>
</html>
 
Ich kenn mich mit Rasberries überhaupt nicht aus. Unterstützen die denn PHP überhaupt? Weil könnte man sonst ggf. als AJAX Aufruf oder als direkten Aufruf gestalten
 
Ja unterstützen PHP.

Hab das Button Script oben im Internet frei zum Download gefunden.
Habe das selbe wie oben derzeit mit einfachen html Buttons gelöst welche beim Klick PHP ausführen.
Nun möchte ich das ganze nur schön designed haben mit dem Script oben :)
 
Zurück
Oben