Foros del Web » Programando para Internet » Jquery »

insertar utilizando jquery ajax y php

Estas en el tema de insertar utilizando jquery ajax y php en el foro de Jquery en Foros del Web. saludos a todos tengo un problemilla, en un form que tengo de modeficar datos los resultados de los datos biene de un array me escript ...
  #1 (permalink)  
Antiguo 30/05/2011, 14:30
 
Fecha de Ingreso: noviembre-2009
Mensajes: 535
Antigüedad: 15 años, 1 mes
Puntos: 25
Pregunta insertar utilizando jquery ajax y php

saludos a todos
tengo un problemilla, en un form que tengo de modeficar datos los resultados de los datos biene de un array me escript que tengo para modeficar los datos modefica solo el primero ejemplo
tengo una lista de esta forma
id 1 precio 1 desponible si
id 2 precio 2 desponible si
id 3 precio 3 desponible si
....

al modeficar el id 3 por un precio 20 eje.. se modefica solo el id 1 en ves de la 3

mi function es
Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.              $('form#editeprice').ready(function(){
  3.                  $('input').change(function(){             
  4.                        var idvila = $('#idvila').val();
  5.                        var idsemana = $('#idsemana').val();
  6.                        var tarifa = $('#tarifa').val();
  7.                        var dispo = $('#dispo').val();
  8.                        
  9.                    $.ajax({
  10.                       url:"modificarprecio.php",
  11.                       type:"POST",
  12.                       data: "idvila=" + idvila + "&idsemana=" + idsemana + "&tarifa=" + tarifa + "&dispo="+ dispo,
  13.                      
  14.                       error:function(){
  15.                          alert('Failed');
  16.                       },
  17.                       success:function(msg){
  18.                          alert('Success hola: ' + msg);
  19.                       }
  20.                    });
  21.                  })
  22.            
  23.              
  24.              
  25.              
  26.              
  27.          })
  28.          });
y en input esta de esta manera
Código PHP:
Ver original
  1. while($row = mysql_fetch_array($query)){
  2. ?>
  3. <input type="hidden" id="idvila" name="idvila" value="<?php echo $row['idvila']; ?>" />
  4. <input type="text" id="idvila" name="idvila" value="<?php echo $row['idsemana']; ?>" />
  5. <input type="text" id="idvila" name="idvila" value="<?php echo $row['tarifa']; ?>" />
  6. <input type="text" id="idvila" name="idvila" value="<?php echo $row['dispo']; ?>" />
  7. <?php
  8. }
  9.  
  10. }
__________________
cada vez que aprendes algo te crees que no sabes nada
  #2 (permalink)  
Antiguo 30/05/2011, 14:37
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 7 meses
Puntos: 344
Respuesta: insertar utilizando jquery ajax y php

El problema es que estás usando id iguales en varios elementos HTML y sólo te coge el primero.

Primero dinos que intentas conseguir exactamente para ayudarte de mejor manera. Por lo que veo en el código cuando cambia un valor del input quieres actualizar todos los input a la vez que estén unidos al mismo input. ¿Es así?
  #3 (permalink)  
Antiguo 30/05/2011, 15:10
 
Fecha de Ingreso: noviembre-2009
Mensajes: 535
Antigüedad: 15 años, 1 mes
Puntos: 25
Respuesta: insertar utilizando jquery ajax y php

gracias por respuesta alexg88
lo que quiero es al cambiar un valor de input de formulario se actualiza por eso hecho change, yo creo la razon es el valor de id es la misma y pregunto como es la function en esta situacion, es que tanmbien soy nuevo en ajax y jquery
__________________
cada vez que aprendes algo te crees que no sabes nada
  #4 (permalink)  
Antiguo 30/05/2011, 15:28
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 7 meses
Puntos: 344
Respuesta: insertar utilizando jquery ajax y php

Si es por el id.

Te dejo un ejemplo de como sería:

Código PHP:
Ver original
  1. <?php
  2. while($row = mysql_fetch_array($query)){
  3. ?>
  4. <div>
  5. <input type="hidden" class="idvila" value="<?php echo $row['idvila']; ?>" />
  6. <input type="text" class="idsemana" value="<?php echo $row['idsemana']; ?>" />
  7. <input type="text"  class="tarifa"  value="<?php echo $row['tarifa']; ?>" />
  8. <input type="text" class="dispo"  value="<?php echo $row['dispo']; ?>" />
  9. </div>
  10. <?php
  11. }
  12. ?>

Código Javascript:
Ver original
  1. $('input').change(function(){  
  2.  
  3.                        var padre = $(this).parent();
  4.                        var idvila = $('.idvila',padre).val();
  5.                        var idsemana = $('.idsemana',padre).val();
  6.                        var tarifa = $('.tarifa',padre).val();
  7.                        var dispo = $('.dispo',padre).val();
  8.                        
  9.                    $.ajax({
  10.                       url:"modificarprecio.php",
  11.                       type:"POST",
  12.                       data: "idvila=" + idvila + "&idsemana=" + idsemana + "&tarifa=" + tarifa + "&dispo="+ dispo,
  13.                      
  14.                       error:function(){
  15.                          alert('Failed');
  16.                       },
  17.                       success:function(msg){
  18.                          alert('Success hola: ' + msg);
  19.                       }
  20.                    });
  21.                  });


Fíjate en el div que encubre todos los input, es muy importante para que el javascript funcione bien. Lo que hago en el javascript es ver que input ha cambiado a partir del elemento padre (el div) y luego recoge los valores mediante la clase del elemento, si te fijas bien.

Hay más maneras, pero esta es una. En vez del div, puedes usar un form si lo prefieres. Si usas un formulario, puedes usar el método serialize para crear la cadena de parámetros de forma muy sencilla, aunque tendrías que ponerles el atributo name:

Código PHP:
Ver original
  1. <?php
  2. while($row = mysql_fetch_array($query)){
  3. ?>
  4. <div>
  5. <input type="hidden" name="idvila" value="<?php echo $row['idvila']; ?>" />
  6. <input type="text"  name="idsemana" value="<?php echo $row['idsemana']; ?>" />
  7. <input type="text"  name="tarifa"  value="<?php echo $row['tarifa']; ?>" />
  8. <input type="text" name="dispo"  value="<?php echo $row['dispo']; ?>" />
  9. </div>
  10. <?php
  11. }
  12. ?>

Código Javascript:
Ver original
  1. <form>
  2. <input type="hidden" name="idvila" class="idvila"  value="idvila_1" />
  3. <input type="text"  name="idsemana" class="idsemana"  value="idsemana_1" />
  4. <input type="text"  name="tarifa" class="tarifa" value="tarifa_1" />
  5. <input type="text" name="dispo" class="dispo"   value="dispo_1" />
  6. </form>
  7.  
  8. <form>
  9. <input type="hidden" name="idvila" class="idvila"  value="idvila_1" />
  10. <input type="text"  name="idsemana" class="idsemana"  value="idsemana_1" />
  11. <input type="text"  name="tarifa" class="tarifa" value="tarifa_1" />
  12. <input type="text" name="dispo" class="dispo"   value="dispo_1" />
  13. </form>

Última edición por alexg88; 30/05/2011 a las 15:36
  #5 (permalink)  
Antiguo 30/05/2011, 19:15
 
Fecha de Ingreso: noviembre-2009
Mensajes: 535
Antigüedad: 15 años, 1 mes
Puntos: 25
Respuesta: insertar utilizando jquery ajax y php

gracias hasido de grand ayuda aqui te espera karma
__________________
cada vez que aprendes algo te crees que no sabes nada
  #6 (permalink)  
Antiguo 31/05/2011, 02:11
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 7 meses
Puntos: 344
Respuesta: insertar utilizando jquery ajax y php

Me he dado cuenta de que he copiado mal el código javascript.

Este sería el código del segundo ejemplo (usando form en vez de div y con el método serialize)
Código Javascript:
Ver original
  1. $('input').change(function(){  
  2.  
  3.                        var padre = $(this).parent();
  4.                        
  5.                    $.ajax({
  6.                       url:"modificarprecio.php",
  7.                       type:"POST",
  8.                       data: padre.serialize(),
  9.                      
  10.                       error:function(){
  11.                          alert('Failed');
  12.                       },
  13.                       success:function(msg){
  14.                          alert('Success hola: ' + msg);
  15.                       }
  16.                    });
  17.                  });

Etiquetas: ajax, php
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 16:17.