2015-05-30 2 views
0

Я делаю систему домашней автоматизации с малиной pi и raspbian. Я собираюсь создать веб-страницу, содержащую некоторые флажки для управления огнями через реле. Мне нужен веб-код, содержащий флажок. Когда я нажимаю этот флажок, php будет выполнять файл кода python, который управляет реле. Я слышал, что формы публикации без обновления страницы могут выполняться с помощью ajax и javascript. Но я не знаком с этими языками. Можете ли вы, ребята, показать мне простой пример флажка, который, когда я его проверю, сделает php exec() некоторым файлом и снимет его, он сделает php exec() другим файлом.Как отправить форму, нажав на флажок, не обновляя страницу?

Вот пример:

<!DOCTYPE html> 
<html> 
    <head> 
     <script src="https://code.jquery.com/jquery-1.9.1.min.js"></script> 
     <title>Raspberry Pi</title> 
    </head> 
    <body> 
     <input type="checkbox" class="iclass" /> 
     <script> 
    $("input.iclass").click(function (e) { 
    e.preventDefault(); 
    $.post("post.php", {param1: value, param2: value}); 
}); 
     </script> 
    </body> 
</html> 

И post.php просто дает и alert('Succesful!'); сейчас. Но почему-то это не работает.

+0

Если вам нужно вызвать Python в конечном счете, рассмотрите возможность использования веб-сервера, написанного на Python, например, django, чтобы ограничить количество языковых барьеров, которые вы должны пересечь. Однако, если вам нужно использовать сервер PHP, ответ от Praveen Kumar дает простой пример, как это сделать. – Cu3PO42

+0

В какой-то момент мне понадобятся php и jQuery для будущих этапов моего проекта. Однако я взглянул на рамки django, и это показалось мне очень сильным. Я собираюсь использовать его когда-нибудь. Спасибо за совет @ Cu3PO42 –

ответ

0

Убедитесь, что вы используете библиотеку jQuery. Вы можете использовать что-то вроде этого:

$("input.checkbox-class").click(function (e) { 
    e.preventDefault(); 
    $.post("/path/to/php/script.php", {param1: value, param2: value}); 
}); 

И источник /path/to/php/script.php будет:

<?php 
    exec("system"); 
?> 

пример кода с полным HTML будет:

<!DOCTYPE html> 
<html> 
    <head> 
     <script src="https://code.jquery.com/jquery-1.9.1.min.js"></script> 
     <title>Raspberry Pi</title> 
    </head> 
    <body> 
     <input type="checkbox" /> 
     <script> 
      $(document).ready(function (e) { 
       e.preventDefault(); 
       $.post("/path/to/php/script.php", {param1: value, param2: value}); 
      }); 
     </script> 
    </body> 
</html> 
+1

Вам понадобится jQuery для этого –

+0

@GerardvanHelden Добавлена ​​информация. ':)' –

+0

Я использовал пример html-кода выше. Но не работал для меня. Когда я проверил или снял флажок, ничего не произошло. Я выполнил мой скрипт php непосредственно из браузера, работали реле. Но не удалось вызвать триггерный файл php, установив флажок. Благодарю. –

Смежные вопросы