Tengo una aplicación simple "elegir IZQUIERDA o DERECHA" donde el usuario selecciona su preferencia. Cuando el usuario hace clic en su preferencia, me gustaría registrar la opción en la que se hizo clic y registrar que no se hizo clic en la otra opción. es posible? Soy muy nuevo y estoy teniendo dificultades para conceptualizar cómo grabar el "sin clic".
Aquí están las cosas del lado del cliente que tengo que registrar el clic (preferencia) y actualizar las opciones después del clic.
<form action="submit.php" method="POST"> <input type="submit" value="Option A" onclick="refreshOptions()" name= "<?php OptionAClicked ?>" /> <input type="submit" value="Option B" onclick="refreshOptions()" name= "<?php OptionBClicked ?>" /> </form> <script> function refreshOptions() { location.reload(); } </script> No sé por dónde empezar. ¿Podría simplemente agregar otro name para la opción en la que no se hizo clic en cada <input> de esta manera?
SOLUCIONADO: Usé lógica de php "entrecruzada" adicional y asigné claves de ID a cada opción usando un <select> oculto preseleccionado. También eliminó la actualización de Javascript, ya que esto sucede automáticamente con el envío.
lado del servidor:
<?php error_reporting(E_ERROR | E_PARSE); include "pickOne.php"; $OptionAHit = $_POST['OptionA']; $OptionBHit = $_POST['OptionB']; $OptionAId = $_POST['OptionAId']; $OptionBId = $_POST['OptionBId']; if ($OptionAHit) { $Hit = "UPDATE clicks SET Hits = Hits + 1 WHERE ? = OptionID"; $stmt = $con->prepare($Hit); $stmt-> bind_param("i", $OptionAId); $stmt->execute(); $Miss = "UPDATE clicks SET Misses = Misses + 1 WHERE ? = OptionID"; $stmt = $con->prepare($Miss); $stmt-> bind_param("i", $OptionBId); $stmt->execute(); $stmt->close(); $con->close(); } else { $Hit = "UPDATE clicks SET Hits = Hits + 1 WHERE ? = OptionID"; $stmt = $con->prepare($Hit); $stmt-> bind_param("i", $OptionBId); $stmt->execute(); $Miss = "UPDATE clicks SET Misses = Misses + 1 WHERE ? = OptionID"; $stmt = $con->prepare($Miss); $stmt-> bind_param("i", $OptionAId); $stmt->execute(); $stmt->close(); $con->close(); } ?>Si las opciones tienen un identificador único en la base de datos SQL, use un separador para concatenar cada una representada por el par A/B.
Haría algo como lo siguiente, con ambas opciones enumeradas en el valor. Puede separar los valores en el código de procesamiento del formulario y cada opción está disponible para su registro.
<form action="submit.php" method="POST"> <button type="submit" name="choice" value="0001-0004">Option A</button> <button type="submit" name="choice" value="0004-0001">Option B</button> </form>