2017-02-24 38 views
2

我需要創建2個單選按鈕,並根據.status文件內容(o或1)檢查其中的一個 我必須將該值存儲在服務器在更改單選按鈕時檢查文件。我試過這種方式,但失敗了。單選按鈕按預期創建,但au()和ma()函數正在執行。需要幫忙..!我需要存儲0或1到.status文件在服務器php

有沒有最簡單的方法來做到這一點。由於我還必須在該函數中編寫一些php代碼,因此我可以將o或1發送到我的Raspberry Pi GPIO。

在此先感謝。

<?php 
 
     $status = 0; 
 
     $status = file_get_contents('/home/pi/.status'); 
 
     echo $status; 
 
     echo "</br>"; ?> 
 

 
     <?php if ($status == 0) { ?> 
 

 
       <input onchange="<?php au(); ?>" id="auto" type="radio" name="set" value="auto" checked> Auto<br> 
 
       <input onchange="<?php ma(); ?>" id="manual" type="radio" name="set" value="manula"> Manual<br><br> 
 

 
     <?php } elseif ($status == 1) { ?> 
 

 
       <input onchange="<?php au(); ?>" id="auto" type="radio" name="set" value="auto" > Auto<br> 
 
       <input onchange="<?php ma(); ?>" id="manual" type="radio" name="set" value="manula" checked> Manual<br><br> 
 

 
     <?php } 
 
     function au() 
 
     { 
 
       echo 1 > /home/pi/.status; 
 
     }; 
 
     function ma() 
 
     { 
 
       echo 0 > /home/pi/.status; 
 
     }; 
 
     ?> 
 

 

 

 
    

+0

「onchange'''事件處理程序用於調用JavaScript函數而不是PHP函數。您將需要將表單提交回PHP,否則您需要使用AJAX來完成。 – clarmond

回答

1

這是不太一樣的是。如果你想動態地寫一個文件(.status)(沒有頁面的刷新),你需要用JavaScript編碼。

但是,JavaSrcipt不允許您編輯文件。所以你需要採取另一種觀點。

創建一個PHP的形式來選擇,如果你想你的代碼編寫或至.STATUS文件:

<form action="yourpage.php" method="GET"> 
    <p><input type="checkbox" name="automatic" value="auto"> Automatique</p> 
    <p><input type="submit" value="Save"></p> 
</form> 

然後,它處理的形式,插入頁面:

$fp = fopen('/home/pi/.status', 'w'); // It replaces content to what you will write now 
if($fp != false) 
{ 
    if (isset($_GET['automatic']) && $_GET['automatic'] == 'auto') 
    { 
     fwrite($fp, '1'); 
    } 
    else 
    { 
     fwrite($fp, '1'); 
    } 
    fclose($fp); 
} 

如果您想了解有關文件處理的更多信息,看看到fwritefopen PH P文檔。

希望它可以幫助你!

注意:我故意避免談論AJAX和Web服務(WS),因爲一篇文章不足以解釋。

相關問題