2017-02-24 11 views
2

2つのラジオボタンを作成し、.statusファイルの内容(oまたは1)に基づいてそれらのいずれかを確認する必要があります そして、チェックされたラジオボタンの変更時にファイル。私はこの方法を試みたが、失敗した。ラジオボタンは期待通りに作成されますが、au()とma()関数は実行されています。助けが必要..!サーバの状態ファイルに0または1を格納する必要があります

これを行う最も簡単な方法はありますか?私はその関数にPHPコードを書く必要があるので、私はラズベリーパイGPIOにoまたは1を送ることができます。

ありがとうございます。

<?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''イベントハンドラは、PHP関数ではなくJavaScript関数を呼び出すために使用されます。フォームをPHPに提出するか、AJAXを使用してフォームを作成する必要があります。 – clarmond

答えて

1

これはかなりちょうどそのようではありません。ファイル(.status)に動的に(ページのリフレッシュなしで)書き込みたい場合は、これをJavaScriptでコーディングする必要があります。

ただし、JavaSrciptではファイルを編集できません。だからあなたは他の視点をとる必要があります。

あなたはあなたのコードがまたは に.statusファイル書き込みすることを望む場合は選択するPHPのフォームを作成します。

<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)については話しません。

関連する問題