Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] no coge valor textbox (dentro de while)

Estas en el tema de no coge valor textbox (dentro de while) en el foro de PHP en Foros del Web. Buenos días, tengo el siguiente código: Código: while ($row = mysql_fetch_row($rec1)){ echo "<form action='prova_ofertas.php' method='POST'>"; echo "<tr><td>$row[0]</td>"; echo "<td>$row[1]</td>"; echo "<td>$row[2]</td>"; echo "<td>$row[3]</td>"; echo "<td>$row[4]</td>"; ...
  #1 (permalink)  
Antiguo 09/05/2013, 02:33
 
Fecha de Ingreso: agosto-2009
Mensajes: 30
Antigüedad: 14 años, 8 meses
Puntos: 2
no coge valor textbox (dentro de while)

Buenos días,

tengo el siguiente código:

Código:
while ($row = mysql_fetch_row($rec1)){
						echo "<form action='prova_ofertas.php' method='POST'>";
						
                        echo "<tr><td>$row[0]</td>";
						echo "<td>$row[1]</td>";
						echo "<td>$row[2]</td>";
						echo "<td>$row[3]</td>";
						echo "<td>$row[4]</td>";
						echo "<td>$row[5]</td>";
						echo "<td><input type='text' name='oferta' value=''></td>";
						echo "<td><input type='submit' value='Muesta Texto Digitado'; ></td>"; 
						//$contador++; 
						
                }echo "</form>";

por cada registro de la tabla sale un textbox, el caso es que no recoge el valor que le pongo en el textbox usando $prova = $_POST['oferta']; en la página prova_ofertas.php

Si me pueden ayudar, gracias.
  #2 (permalink)  
Antiguo 09/05/2013, 03:54
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: no coge valor textbox (dentro de while)

no recoge el valor que le pongo en el textbox usando $prova = $_POST['oferta']; en la página prova_ofertas.php postea el archivo que te da problemas.
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 09/05/2013, 04:04
 
Fecha de Ingreso: agosto-2009
Mensajes: 30
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: no coge valor textbox (dentro de while)

Código PHP:
while ($row mysql_fetch_row($rec1)){
echo 
"<form action='prova_ofertas.php' method='POST'>";
                        
                        echo 
"<tr><td>$row[0]</td>";
                        echo 
"<td>$row[1]</td>";
                        echo 
"<td>$row[2]</td>";
                        echo 
"<td>$row[3]</td>";
                        echo 
"<td>$row[4]</td>";
                        echo 
"<td>$row[5]</td>";
                        echo 
"<td><input type='text' name='oferta' value=''></td>";
                        echo 
"<td><input type='submit' value='Muesta Texto Digitado'; ></td>"
                        
//$contador++; 
                        
                
}echo "</form>"

prova_ofertas.php

Código PHP:
<?php
session_start
(); 
include_once 
"conexion.php";
$usuario $_SESSION["usuario_id"];
$prova $_POST['oferta'];

echo 
$prova;
?>
la variable $prova tendría que mostrar lo que se a escrito en alguno de los textbox.
  #4 (permalink)  
Antiguo 09/05/2013, 07:20
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: no coge valor textbox (dentro de while)

Utiliza print_r($_POST) para ver qué estás enviando en el array post.
__________________
Fere libenter homines, id quod volunt, credunt.
  #5 (permalink)  
Antiguo 09/05/2013, 09:14
 
Fecha de Ingreso: agosto-2009
Mensajes: 30
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: no coge valor textbox (dentro de while)

devuelve lo siguiente si es el ultimo registro/botón

Array ( [oferta] => Array ( [0] => [1] => 123 ) )


si es cualquier de los anteriores registros devuelve

Array ( [oferta] => Array ( [0] => 123 [1] => ) )
  #6 (permalink)  
Antiguo 09/05/2013, 11:27
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: no coge valor textbox (dentro de while)

Cita:
por cada registro de la tabla sale un textbox
Lo que sucede es que si analizas tu codigo podrás ver que todas las cajas de texto se llaman igual lo cual no debería ser asi ya que al momento de recibir en prova_ofertas.php como sabrás a que caja de texto te refieres si todas se llaman igual??
Piensa un poco y verás que es problema de lógica....
  #7 (permalink)  
Antiguo 09/05/2013, 11:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: no coge valor textbox (dentro de while)

Deja del nombre de los campos, ¡está imprimiendo un formulario completo en cada vuelta del bucle!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 09/05/2013, 11:39
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: no coge valor textbox (dentro de while)

Cita:
Iniciado por pateketrueke Ver Mensaje
Deja del nombre de los campos, ¡está imprimiendo un formulario completo en cada vuelta del bucle!
tienes razon!!!
  #9 (permalink)  
Antiguo 09/05/2013, 12:29
 
Fecha de Ingreso: agosto-2009
Mensajes: 30
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: no coge valor textbox (dentro de while)

si que se que todos los textbox se llaman igual, esa es la duda en parte ya que si no se llaman diferente no puedo saber cual es cual, lo que no se como nombrar los textbox diferentes en cada registro.
La parte:
Deja del nombre de los campos, ¡está imprimiendo un formulario completo en cada vuelta del bucle!
no se que quieres decir..
  #10 (permalink)  
Antiguo 09/05/2013, 13:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: no coge valor textbox (dentro de while)

En cada repetición de tu while() imprimes las etiquetas del <form> ¿sabes lo que eso produce?

Si la idea es tener un formulario con todos estos campos, ¿para qué repites el formulario?

Se supone que debe ser uno, ¿o no?

Sentido común.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 10/05/2013, 01:12
 
Fecha de Ingreso: agosto-2009
Mensajes: 30
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: no coge valor textbox (dentro de while)

correcto!
tiene mucha logica, e puesto el form fuera de while para que sea solo uno el formulario.

Bien, estoy intentando a traves de un hidden buscar el id del registro para despues saber que boton de registro e presionado..aunque creo que no voy bien.

Código PHP:
echo "<form action='prova_ofertas.php' method='POST'>";
while (
$row mysql_fetch_row($rec1)){
                        echo 
"<tr><td>$row[0]</td>";
                        echo 
"<td>$row[1]</td>";
                        echo 
"<td>$row[2]</td>";
                        echo 
"<td>$row[3]</td>";
                        echo 
"<td>$row[4]</td>";
                        echo 
"<td>$row[5]</td>";
                        echo 
"<td><input type='text' name='oferta[]' value=''></td>";
                        echo 
"<td><input type='hidden' name='ids' value='".$row['ID_transferible']."'>";
                        echo 
"<td><input type='submit' value='Muesta Texto Digitado'; ></td>";
                }
                echo 
"</form>"
  #12 (permalink)  
Antiguo 10/05/2013, 07:49
 
Fecha de Ingreso: mayo-2011
Ubicación: Zaragoza
Mensajes: 58
Antigüedad: 12 años, 11 meses
Puntos: 5
Respuesta: no coge valor textbox (dentro de while)

Buenas a todos.

Vamos por partes:

El primer código para mi esta bien lo único que puede fallar es que no estas cerrando el formulario como debe ser y estas anidando uno dentro de otro de esta forma:

Código HTML:
Ver original
  1. <html>
  2.     <title>
  3.     </title>
  4. </head>
  5. <form action='prova_ofertas.php' method='POST'>
  6. <input type='text' name='oferta' value=''>
  7. <input type='submit' value='Muesta Texto Digitado'> <!-- no cierras este form -->
  8. <br>
  9.  
  10. <form action='prova_ofertas.php' method='POST'>
  11. <input type='text' name='oferta' value=''>
  12. <input type='submit' value='Muesta Texto Digitado'> <!-- no cierras este form -->
  13.  
  14. </form> <!-- Esto se coloca al terminal el bucle -->
  15. </body>
  16. </html>
  17. <br>

Que pasa con esto?, Pues que ya es cosa de como lo interprete cada explorador. En chrome y firefox lo que hace es cargarse las etiquetas <form> y deja una sola al principio. El inconveniente es que name='ofertas' tomara solo un valor.

No veo que problema puede haber con tener varios formularios dentro de una misma pagina. Lo unico es que todos han de ser abiertos y cerrados donde debe, Al llamar al submit este ira a la pagina siguiente con los valores de ese formulario y nada mas.


Sin liarme mas, podias haber metido el echo "</form>" dentro de la llave y sin problemas.

Código PHP:
Ver original
  1. while ($row = mysql_fetch_row($rec1)){
  2. echo "<form action='prova_ofertas.php' method='POST'>";
  3.                          
  4.                         echo "<tr><td>$row[0]</td>";
  5.                         echo "<td>$row[1]</td>";
  6.                         echo "<td>$row[2]</td>";
  7.                         echo "<td>$row[3]</td>";
  8.                         echo "<td>$row[4]</td>";
  9.                         echo "<td>$row[5]</td>";
  10.                         echo "<td><input type='text' name='oferta' value=''></td>";
  11.                         echo "<td><input type='submit' value='Muesta Texto Digitado'; ></td>";  
  12.                         //$contador++;  
  13.                   echo "</form>"; // Asi creamos un formulario cada vez que haga el while      
  14.                 }

Con esto llevaras a la otra pagina solo el valor de ofertas que estas introduciendo en ese formulario.

Saludos.
  #13 (permalink)  
Antiguo 10/05/2013, 08:35
 
Fecha de Ingreso: agosto-2009
Mensajes: 30
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: no coge valor textbox (dentro de while)

gracias a todos!
Ya lo tengo.

Etiquetas: mysql, registro, tabla, textbox, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:09.