Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Obtener el valor de un campo lista de una grid o tabla de HTML

24 de junio de 2015

Buenas antes que todo gracias por la ayuda.

Soy nuevo en programacion con PHP. Hago aquí la pregunta porque estoy trabajando en HTML y PHP. Resulta que tengo un formulario grid que trae los datos de una tabla de todas las requisiciones confeccionadas. Entre los datos está un campo <select> que despliega de una tabla de usuarios los nombres de los usuarios del sistema.

Lo que necesito es que al seleccionar un usuario de la lista y darle click al enlace Asignar me actualice la tabla de las requisiciones con el nombre de usuario seleccionado en la lista.

http://i102.photobucket.com/albums/m117/chicolo64/cuadro_zpse2ldoeva.png

Este es codigo del campo lista:

<td>
<select name="UserEsp" id="UserEsp">
  <?php
    do {  
  ?>
    <option value="<?php echo $row_ConsultaUserPres['Usuario']?>">
        <?php echo $row_ConsultaUserPres['Nombre']?>
    </option>
  <?php
    } while ($row_ConsultaUserPres = mysql_fetch_assoc($ConsultaUserPres));
 
    $rows = mysql_num_rows($ConsultaUserPres);
    if($rows > 0) {
        mysql_data_seek($ConsultaUserPres, 0);
        $row_ConsultaUserPres = mysql_fetch_assoc($ConsultaUserPres);
    }
  ?>
</select>
 
<a href="asignar_req_pres.php?VarUser=<?php echo $row_ConsultaUserPres['Usuario']; ?>&VarReq=<?php echo $row_ConsultaReq['NumRequisicion']; ?>">Asignar</a>
</td>

Este es el codigo del PHP que actualiza:

if ((isset($_GET['VarUser'])) && ($_GET['VarUser'] != "")) {
    $VarUsuario = $_GET['VarUser'];
    $updateSQL = sprintf("UPDATE requisicion SET requisicion.AsignadoPres=%sWHERE requisicion.NumRequisicion=%s",
                       GetSQLValueString($VarUsuario, "text"),
                       GetSQLValueString($VarReq, "text"));
 
  mysql_select_db($database_SRE, $SRE);
  $Result1 = mysql_query($updateSQL, $SRE) or die(mysql_error());
}

Lo que está haciendo es actualizarme siempre con el primer valor de la lista, no importa qué opción tome, siempre actualiza con el primero.

Gracias por ayudarme, me estoy rompiendo la cabeza, y he buscado por días en la Internet y no encuentro una solución.


Respuestas

#1

El problema está en que después de mostrar el listado de usuarios, siempre utilizas en el enlace Asignar el valor almacenado en la primera fila. Por eso siempre te lo asigna al primer usuario.

Con PHP solo puedes cambiar cosas "en el servidor". Eso significa que una vez generada la página HTML con PHP, ya no puedes controlar los cambios que se producen, como por ejemplo que un usuario seleccione un valor en una lista desplegable.

Para controlar los cambios "en el navegador" necesitas usar JavaScript. En concreto tienes que crear un código JavaScript que esté atento cuando se pincha el enlace Asignar. Cuando detecte el pinchazo, tiene que detectar qué valor se ha seleccionado en la lista desplegable de nombres. Por último, tiene que construir un enlace con esa información y "pincharlo" automáticamente.

Si necesitas más ayuda con los detalles de esta solución, dínoslo.

@javiereguiluz

25 junio 2015, 9:31
#2

Pues la verdad si necesito, no tengo idea de como hacerlo. Si tienes un ejemplo me seria muy útil y gracias por ayudarme.

@MANOAT5

25 junio 2015, 21:15