PHP - no funciona un boton en un formulario php

 
Vista:

no funciona un boton en un formulario php

Publicado por localhost (22 intervenciones) el 02/01/2009 22:06:26
hola a todos, tengo un problemilla, y es que no me funciona un botón en un formulario en php, haber si me explico un poco, y este formulario me va mostrando cada uno de los servicios contratados por los distintos clientes que tengo en una base de datos en MySql, y por cada servicio tengo un boton para mostrar los datos del cliente que contrató dicho servicio, aqui os pongo el código:

<?php
// Conectar con el servidor de base de datos
$conexion = mysql_connect ("localhost", "root", "")
or die ("No se puede conectar con el servidor");

// Seleccionar base de datos
$exito = mysql_select_db ("mapfre")
or die ("No se puede seleccionar la base de datos");

// Realizar una consulta
$filtrar=$_REQUEST["filtrar"];
$todos=$_REQUEST["todos"];
$sql="SELECT cliente.dni, cliente.nombre, cliente.apellidos, datosservicio.numPoliza, datosservicio.tipoServicio, datosservicio.prima"
. " FROM datosservicio, cliente "
. " WHERE cliente.dni= datosservicio.dniCliente";
if (isset($filtrar)){
$sql = $sql. " AND cliente.dni = '".$_REQUEST['dni']."'";
}
$sql=$sql . " ORDER BY tipoServicio ";

$dni=$_REQUEST["dni"];
echo "<form method="post" action="cliente.php?dni=$dni">";

// Mostrar resultados de la consulta, todos los servicios
print ("<TABLE border=1 align=center> ");
print ("<TR> ");
print ("<TH>DNI</TH> ");
print ("<TH>Nombre</TH> ");
print ("<TH>Apellidos</TH> ");
print ("<TH>Número de Póliza</TH> ");
print ("<TH>Tipo de Servicio</TH> ");
print ("<TH>Prima</TH> ");
print ("</TR> ");

$i=0;
$consulta = mysql_query ($sql, $conexion);
while ($fila = mysql_fetch_array($consulta, MYSQL_ASSOC)) {

echo ("<TR> ");
echo '<td>'. "<input type="text" readonly name="dni[$i]" size="10" value='$fila[dni]'>". '</td>';
echo '<td>'. "<input type="text" readonly name="nombre[$i]" size="30" value='$fila[nombre]'>". '</td>';
echo '<td>'. "<input type="text" readonly name="apellidos[$i]" size="35" value='$fila[apellidos]'>". '</td>';
echo '<td>'. "<input type="text" readonly name="numPoliza[$i]" size="20" value='$fila[numPoliza]'>". '</td>';
echo '<td>'. "<input type="text" readonly name="tipoServicio[$i]" size="30" value='$fila[tipoServicio]'>". '</td>';
echo '<td>'. "<input type="text" readonly name="prima[$i]" size="8" value='$fila[prima] €' style="text-align:right">". '</td>';
echo "<TD>". "<input type="submit" value="Datos Personales" name="datos[$i]">". "</TD";// boton para acceder a cliente.php que mostrará los datos del cliente correspondiente a la tupla
echo "</tr>";
$i++;
}

echo "</table>";
echo "</form>";
?>

el problema es que cuando el pulso sobre uno de esto botones no se manda el dni correctamente, y en la url de cliente.php aparece lo siguiente:

http://localhost/cliente.php?dni=

como si estubiera esperando el dni, le pongo un dni, ya me lo muestra bien, pero no cuando lo hago desde el formulario anterior. Haber si alguien me puede echar un cable, estoy super agobiado esto no me funciona, de ninguna manera
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:no funciona un boton en un formulario php

Publicado por ElTecla (45 intervenciones) el 02/01/2009 23:07:40
mira, a mi forma de ver te convendria hacer una de dos cosas:

1- Para cada registro que listes crear un formulario y no un formulario para todos los registros... es decir poner dentro del while las etiquetas <form...> todo el resto </form>

2-Hacerlo mediante JS, es decir en el boton llamar a una funcion JS con un parametro que podria ser tu variable $i... no lo manejo muy bien, pero podria ser algo asi:

<input type="button" value="Datos Personales" name="datos[$i]" onClick="nombredefuncion( <?php echo $i ?>" > o algo asi...

y en los text ponerles:

id="dni <?php echo $i ?>

luego en la funcion de JS seria algo asi:

function nombredefuncion(registro){
actual = document.getElementById("dni" + registro)
location.href="pagina.php?dni=" + actual.value
}

Estoy mas que seguro que ese codigo esta lleno de errores, pero la idea es darte la idea para que tengas una alternativa de donde buscar.

Espero que te sea de utilidad.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona un boton en un formulario php

Publicado por localhost (22 intervenciones) el 03/01/2009 10:44:49
hey Tecla, muchas gracias por responder y con tanta brevedad, he probado tanto ha hacer un formulario por cada tupla como a crear una funcion en js, y con un formulario por tupla, hace igual que antes, y con la funcion en js, que la he llamado obtenerDNI, directamente no muestra nada, quiza tenga q decirle q me muestre el formulario cliente.php???, pero que lo hago en js o php.

Explico un poco lo que hice: que quitado el formulario del php, donde mostraba los distintos servicios de los clientes, directamente tengo una tabla con las tuplas resultantes del select, y por cada tupla un boton que he cambiado el que tenia por este otro:

echo "<TD>". "<input type="submit" value="Datos Personales" name="datos[$i]">". "</TD"; //este es el que tenía

echo "<TD>"."<input type="button" value="Datos Personales" name="datos[$i]" onClick="obtenerDNI(echo $fila[dni])">"."</TD>"; // este es el nuevo

y he creado la funcion en js obtenerDNI tal y como me dijiste,
function obtenerDNI(registro){
actual = document.getElementById("dni" + registro)
location.href="cliente.php?dni=" + actual.value
}

cliente.php?dni= es el archivo php al cual tento que pasarle el dni de la tupla, estoy empezando con esto y haber si me pudierais echar una mano, estoy muy agobiado, muchas gracias nuevamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona un boton en un formulario php

Publicado por ElTecla (45 intervenciones) el 03/01/2009 23:34:39
ya encontre tu problema... estas intentando recoger una variable inexistente...

$_REQUES['dni'] esta variable no existe, mira porque

<input type="text" readonly name="dni[$i]" size="10" value='$fila[dni]'>

el name de la variable no es dni, sino dni+un numero

hace lo siguiente: crea un form para cada registro y el input del dni ponele como nombre solo dni, al ser de distintos formularios, solo te va a enviar la variable del form que envies...

por otro lado, no se si es mejor o no, pero al estar usando el method="post" creo que te conviene recoger las variables desde el arreglo $_POST['dni']

espero que te sirva

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona un boton en un formulario php

Publicado por localhost (22 intervenciones) el 04/01/2009 09:56:49
efectivamente, muchas gracias, ya he conseguido solucionarlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar