Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/06/2015, 21:55
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 7 meses
Puntos: 320
Respuesta: Operaciones bool en PHP????

lpt.php

Código PHP:
Ver original
  1. <?php
  2.     if($_SERVER["REQUEST_METHOD"] === "POST") {
  3.         $binstr = implode("", array_map(function($b){ return $b === "true" ? 1 : 0; }, $_POST["bits"]));
  4.         $number = bindec($binstr);
  5.        
  6.         // Aca envias el numero al puerto...
  7.        
  8.         die(json_encode(["binario" => $binstr, "decimal" => $number]));
  9.     }
  10. ?>
  11.  
  12. <!DOCTYPE html>
  13.  <html>
  14.      <head>
  15.          <title>BITS LPT MANAGER</title>
  16.          <style>
  17.             table {
  18.                 width: 400px;
  19.                 border-collapse: collapse;
  20.                 margin: 40px auto;
  21.                 box-shadow: 0 0 5px #333;
  22.                 border: 3px solid #333;
  23.             }
  24.             table tr th,
  25.             table tr td {
  26.                 text-transform: uppercase;
  27.                 text-align: center;
  28.                 padding: 10px;
  29.                 font-family: arial;
  30.             }
  31.             table tr td input {
  32.                 width: 25px;
  33.                 height: 25px;
  34.             }
  35.          </style>
  36.      </head>
  37.      <body>
  38.          <table>
  39.             <tr>
  40.                 <th colspan="2">BINARIO:</th> <th colspan="2" id="binario"></th>
  41.                 <th colspan="2">DECIMAL:</th> <th colspan="2" id="decimal"></th>
  42.             </tr>
  43.             <tr>
  44.                 <th>8</th>
  45.                 <th>7</th>
  46.                 <th>6</th>
  47.                 <th>5</th>
  48.                 <th>4</th>
  49.                 <th>3</th>
  50.                 <th>2</th>
  51.                 <th>1</th>
  52.             </tr>
  53.             <tr>
  54.                 <td><input type="checkbox" id="bit8" value="8"></td>
  55.                 <td><input type="checkbox" id="bit7" value="7"></td>
  56.                 <td><input type="checkbox" id="bit6" value="6"></td>
  57.                 <td><input type="checkbox" id="bit5" value="5"></td>
  58.                 <td><input type="checkbox" id="bit4" value="4"></td>
  59.                 <td><input type="checkbox" id="bit3" value="3"></td>
  60.                 <td><input type="checkbox" id="bit2" value="2"></td>
  61.                 <td><input type="checkbox" id="bit1" value="1"></td>
  62.             </tr>
  63.          </table>
  64.  
  65.          <script>
  66.             function LPT(bits, monitor, delay) {
  67.                 this.bits = bits;
  68.                 this.monitor = monitor;
  69.                 this.comet(delay);
  70.             }
  71.             LPT.prototype = {
  72.                 "comet" : function(delay) {
  73.                     var bits = new FormData();
  74.                     this.bits.forEach(function(b) { bits.append("bits[]", b.checked); });
  75.                    
  76.                     var request = new XMLHttpRequest();
  77.                     request.open("post", "lpt.php");
  78.                     request.onreadystatechange = function(request, delay) {
  79.                         if(request.readyState === 4) {
  80.                             var response = request.responseText,
  81.                                 success = false;
  82.  
  83.                             if(request.status == 200) {
  84.                                 try {
  85.                                     response = JSON.parse(response);
  86.                                     success = true;
  87.                                 } catch(e) { }
  88.                             }
  89.  
  90.                             if(success) {
  91.                                 this.monitor.binario.innerHTML = response.binario;
  92.                                 this.monitor.decimal.innerHTML = response.decimal;
  93.                             }
  94.                             else
  95.                                 console.error(response);
  96.                            
  97.                             setTimeout(this.comet.bind(this, delay), delay);
  98.                         }
  99.                     }.bind(this, request, delay);
  100.                    
  101.                     request.send(bits);
  102.                 }
  103.             }
  104.  
  105.             new LPT([
  106.                 document.getElementById("bit8"),
  107.                 document.getElementById("bit7"),
  108.                 document.getElementById("bit6"),
  109.                 document.getElementById("bit5"),
  110.                 document.getElementById("bit4"),
  111.                 document.getElementById("bit3"),
  112.                 document.getElementById("bit2"),
  113.                 document.getElementById("bit1"),
  114.             ], {
  115.                 "binario" : document.getElementById("binario"),
  116.                 "decimal" : document.getElementById("decimal"),
  117.             }, 1000);
  118.          </script>
  119.      </body>
  120.  </html>
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios