• Welcome to LusoRobótica - Robótica em Português.
 

Ajuda com código PHP

Started by m2snd, 28 de July de 2011, 19:39

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

m2snd

Ola pessoal!
Preciso da vossa  preciosa ajuda.

Tenho este código em PHP com um exemplo para um Switch com opção ON/OFF.
Tentei modifica-lo para dois Switch´s com as mesmas opções ON/OFF. O problema é que ao fazer por exemplo ON no Switch1 e depois fazer, também ON no Switch2, a indicação de ON no primeiro Switch desaparece ficando apenas a indicação ON no segundo Switch. O mesmo acontece com a opção OFF. Tenho isto a correr num servidor.
Será que me podem indicar como poderei fazer para ficar a indicação independentemente em cada Switch conforme a minha opção?

Muito obrigado

  <?php

   exec
('mode COM4: baud=9600 data=8 stop=1 parity=n xon=no');

   
$switch1 = "";
   
$switch2 = "";

   
/* Serial script for pan/tilt Camera with servos */
   /* Script by Aneal Khimani, 2-12-10 */

   //check the GET action SuperGlobal var to see if an
   //action is to be performed

   
if (isset($_GET['action'])) {

   
$switch1 = $_GET['action'];
   
$switch2 = $_GET['action'];

   
//Action required

   
switch ($switch1) {
   case
"on":
   
$fp = fopen("COM4", "w");
   
fwrite($fp, chr(97));
   
fclose($fp);
   break;

   case
"off":
   
$fp = fopen("COM4", "w");
   
fwrite($fp, chr(98));
   
fclose($fp);
   break;
}

switch (
$switch2) {

   case
"on2":
   
$fp = fopen("COM4","w");
   
fwrite($fp, chr(99));
   
fclose($fp);
   break;

   case
"off2":
   
$fp = fopen("COM4","w");
   
fwrite($fp, chr(100));
   
fclose($fp);
   break;
   }
}


?>

<html>
    <body>
  <right>
    <p>
    <font size="4">Switch1</font><br />
    <table width="30">
   
    <tr><td><a href="<?=$_SERVER['PHP_SELF'] . "?action=on" ?>">On</a></td><td><?php if($switch1 == 'on'){echo "<b>ON</b>";} ?></td></tr>
    <tr><td><a href="<?=$_SERVER['PHP_SELF'] . "?action=off" ?>">Off</a></td><td><?php if($switch1 == 'off'){echo "<b>OFF</b>";} ?></td></tr>
  </right> 
 
<table width="30"> 
<font size="4">Switch2</font><br />
   
<center>
  <tr><td><a href="<?=$_SERVER['PHP_SELF'] . "?action=on2" ?>">On</a></td><td><?php if($switch2 == 'on2'){echo "<b>ON2</b>";} ?></td></tr>
    <tr><td><a href="<?=$_SERVER['PHP_SELF'] . "?action=off2" ?>">Off</a></td><td><?php if($switch2 == 'off2'){echo "<b>OFF2</b>";} ?></td></tr>

    </table>
    </p>

    </center>
    </body>
    </html>

senso

Tens um caracter para cada botão, e só envias um caracter, por isso não consegues ter informaçao de vários estados, só de um estado de cada vez, ou fazes uma pequena tabela e tens vários caracteres, cada um diz se cada switch está on ou off, ou então mandas vários caracteres numa string.
Mas isso bastava dois bits.
Avr fanboy

microbyte

Nada disso, só tens de passar sempre os 2 estados como argumento.

Por exemplo:
Se a tua página for do género "pagina.php?sw1=on&sw2=off", tens acesso aos estados assim:
$sw1 = $_GET['sw1'];
$sw2 = $_GET['sw2'];


Depois de teres acesso aos estados, fazes o que quiseres com eles.
Depois só tens de alterar a forma como alteras a variável.

O teu <a href="..."> tem que apontar para a mesma página, mas tens de passar sempre as 2 variáveis para manter a que não queres alterar.
Por exemplo, queres alterar o botão1:

tens de fazer um link (href) para a página, com o estado do botão 1 contrário ao que está na variável $sw1 e o estado do botão 2 igual ao que está na variável $sw2.

m2snd

microbyte, obrigado!!!!

Já tenho isto a funcionar. Agora vou ver se consigo replicar o código para mais  sw´s.

Obrigado pela tua preciosa ajuda, sem  a qual acho que não chegaria lá. O código foi quase completamente modificado.

Agora já sei a quem devo recorrer. para o PHP... :D