LusoRobótica - Robótica em Português

Robótica => Iniciantes => Tópico iniciado por: m2snd em 28 de Julho de 2011, 19:39

Título: Ajuda com código PHP
Enviado por: m2snd em 28 de Julho de 2011, 19:39
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

Código: [Seleccione]
  <?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($fpchr(97));
    
fclose($fp);
    break;

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

switch (
$switch2) {

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

    case 
"off2":
    
$fp fopen("COM4","w");
    
fwrite($fpchr(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>
Título: Re: Ajuda com código PHP
Enviado por: senso em 28 de Julho de 2011, 22:05
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.
Título: Re: Ajuda com código PHP
Enviado por: microbyte em 29 de Julho de 2011, 10:28
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:
Código: [Seleccione]
$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.
Título: Re: Ajuda com código PHP
Enviado por: m2snd em 30 de Julho de 2011, 12:44
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