Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Formularios en bucle

Estas en el tema de Formularios en bucle en el foro de PHP en Foros del Web. Hola, buenos días. Creo que este tema va aquí, aunque no estoy seguro porque también junto javascript y wordpress. Os comento, tengo una función PHP ...
  #1 (permalink)  
Antiguo 07/11/2015, 13:32
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 11 años
Puntos: 1
Formularios en bucle

Hola, buenos días. Creo que este tema va aquí, aunque no estoy seguro porque también junto javascript y wordpress.

Os comento, tengo una función PHP que muestra una serie de formularios, la función hace que según haya campos en la bd, va a salir un formulario para que el usuario edite unos ciertos datos. Pero no se porque, la función del botón siempre me recoge los datos del primer formulario.

Ejemplo: Tabla coche, se guardan coches con sus características.

Coche 1
Coche 2
Coche 3

Entonces, en la página van a salir tres formularios pero solo me recoge los datos del primer formulario que sale, el resto de formularios si clico en el botón salen los datos del primero.

Os copio mi código, para ver si me podéis decir que hago algo o darme algún consejo.

Código de la función php:

Código PHP:
function modificar()
{        

            (
consulta a la bd)
            foreach (
$consult as  $value
            {
                 echo 
'<label>Experiencia en: </label>';
                     echo 
'<div> ';
                         echo 
'<form id="f1">';
echo 
'<input  type="text" id="R_nombre" value="'.$value->nombre.'" name="R_nombre"><br>';
                      
echo 
'<input type="button"   id="boton"> value="guardar" onclick="modificar_();">';
 
                        echo 
'</form>';
                        echo 
'</div>';
                              echo 
"<hr>";
             }} 
Este sería el código de la función, pongo ensencial para que no se haga pesado, el formulario consta de unos cuantos campos más.

Luego, la función del onclick, llama a este código:

Código PHP:
 function modificar_()
 {
    
 var 
nombre=document.getElementById('R_nombre').value;
 
     
jQuery.ajax({
        
type"POST",
        
url"http://localhost/web/wp-admin/admin-ajax.php"
        
data: {'action':'nombre_dataII','R_nombre':nombre},
        
success: function(msg){
         $(
'#mensajeExp1').append(msg);
         },
        
error: function(msg){
             
        $(
'#mensajeExp1').append(msg);
        
console.log(msg.statusText);
        }});
 } 
Esta es la función javascripts a la que llama el onclick, al igual que la otra función he quitado algunos campos para que no haya mucho código.

¿qué hago mal? Tengo la idea en la cabeza que cada botón enviar funcione independiente, pero se ve que hay algo que hace que pille siempre el mismo, pero no se si es por los las id y name que al estar en bucle tienen todos los mismos o que.

Un saludo y gracias de antemano.
  #2 (permalink)  
Antiguo 07/11/2015, 15:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Formularios en bucle

Cita:
pero no se si es por los las id y name que al estar en bucle tienen todos los mismos o que.
¡Bingo!

Exactamente ese es el problema.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 07/11/2015, 18:09
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 11 años
Puntos: 1
Respuesta: Formularios en bucle

Gracias por responderme, después de leerte y pensar con tranquilidad he dado con la solución.

La digo por si alguien le ocurre lo en algún momento lo mismo.

He puesto que el ajax sea serialize(), y le paso por parámetro a la función del onclick la id del formulario. De esta forma me coge todos los campos del formulario donde están y no hay conflicto.

Un saludo.

Etiquetas: bucle, formulario, formularios, tabla
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 15:36.