Estoy tratando de crear un menú desplegable y ejecutar scripts SQL específicos según el valor de cada opción.
Parte del código php es esto (he hecho que las etiquetas sean más fáciles de entender para que entiendas lo que quiero):
<div class="form-group RunningSQLScripts"> <label for="inputStatus">Running My Scripts</label> <select id="inputStatus" name="RunningSQLScripts" class="form-control"> <option selected disabled>--</option> <option value="RunScript1">Delete Whole Table</option> <option value="RunScript2">Run Script 3</option> </select> </div>Digamos que se supone que RunScript1 ejecuta el comando SQL truncar la tabla table_name1. ¿Cómo puedo hacer eso desde el menú php?
La forma más fácil es usar onclick= y luego el nombre_de_función ();
por ejemplo:
<div class="form-group RunningSQLScripts"> <label for="inputStatus">Running My Scripts</label> <select id="inputStatus" name="RunningSQLScripts" class="form-control"> <option selected disabled>--</option> <option onclick="RunScript1()">Delete Whole Table</option> <option onclick="RunScript2()">Run Script 3</option> </select> </div>Y luego según el nombre de la función. Cree las funciones apropiadas para ejecutar al hacer clic.
Puede enviar el formulario al servidor y ejecutar la solicitud que necesita.
<?php $db = new mysqli('localhost', 'db_user', '1234', 'db_name'); if($db->connect_errno)die('Error: '.$db->connect_error); ?> <form name="runSQL" method="get"> <div class="form-group RunningSQLScripts"> <label for="inputStatus">Running My Scripts</label> <select id="inputStatus" name="RunningSQLScripts" class="form-control"> <option selected disabled>--</option> <option value="RunScript1">Delete Whole Table</option> <option value="RunScript2">Run Script 3</option> </select> <input type="submit" value="Run"> </div> </form> <?php $runSQL = $_GET['RunningSQLScripts']; switch($runSQL){ case 'RunScript1': $db->query("truncate table `name`"); echo '* Successfully deleted *'; break; case 'RunScript2': $db->query("SQL"); echo '* Successfully run *'; break; } ?>La forma más fácil de hacerlo: totalmente funcional, simplemente agregue onchange='this.form.submit();'
<form id="companyForm" name="companyForm" class="form-horizontal" type=get> <div class="form-group RunningSQLScripts"> <label for="inputStatus">Running My Scripts</label> <select id="inputStatus" name="RunningSQLScripts" onchange='this.form.submit();' class="form-control"> <option selected disabled>--</option> <option value="RunScript1">Delete Whole Table</option> <option value="RunScript2">Run Script 3</option> </select> </div> </form> <?php $RunningSQLScripts = $_GET['RunningSQLScripts']; $con = mysqli_connect('host','username','password','db'); if (!$con) { die('Could not connect: ' . mysqli_error($con)); } mysqli_select_db($con,"db"); if ($RunningSQLScripts == "RunScript1") { $sql="truncate TABLE `table_name1`;"; // truncate table table_name1 $result = mysqli_query($con,$sql); } mysqli_close($con); ?>