Foros del Web » Programando para Internet » Jquery »

Funcion editar campo con Jquery

Estas en el tema de Funcion editar campo con Jquery en el foro de Jquery en Foros del Web. Hola amigos, Es un gusto saludarlos nuevamente, hace tiempo que no posteaba porque siempre encuentro la respuestas a mis dudas en los demás foros, de ...
  #1 (permalink)  
Antiguo 29/01/2011, 21:20
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 18 años
Puntos: 3
Pregunta Funcion editar campo con Jquery

Hola amigos,

Es un gusto saludarlos nuevamente, hace tiempo que no posteaba porque siempre encuentro la respuestas a mis dudas en los demás foros, de este super sitio pero en esta ocasión tengo un problema.

A ver les cuento:

Trabajo con PHP-Mysql y tengo un select que me devuelve todos los registros de una tabla, e implementado paginacion y todo va bien, la impresion de los registros se hace en el documento html, no ocupo campos de formulario para mostrarlos, el problema es que necesito agregarle un link a la par de cada valor de campo que diga "Editar" y cuando le de clic me aparezca un campo de formulario para darle un nuevo valor al campo en cuestión.

Pensé en Jquery porque es lo que he estado trabajando en estos días, ¿Me pueden hacer el favor de indicarme como solucionar estos?

Les dejo un ejemplo:

Nombre: Fulanito de Tal "Editar"

Al darle clic en Editar quedaría algo así:

Nombre: <input type="text" value="Fulanito de Tal"> Guardar

Otro problema es que no todos los campos son cuadros de texto, sino que muchos otros son cuadros de lista desplegable.

Creo que está algo complicado, por eso les pido su valiosa ayuda.

Ya que también estoy empezando con jquery

Gracias desde ya
  #2 (permalink)  
Antiguo 31/01/2011, 07:11
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 15 años
Puntos: 65
Respuesta: Funcion editar campo con Jquery

yo tengo algo asi simple con doble click para editar y enter para guardar

Código HTML:
Ver original
  1.     <head>
  2.         <title>Ejemplo</title>
  3.         <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  4.         <script>
  5.            
  6.  
  7.             $(function(){
  8.                 $('.editText').dblclick( function(){
  9.                     var text = $(this).text();
  10.                     $(this).empty().html('<input type="text" value="'+text+'">').find('input').focus();
  11.                 }).keypress( function(e){
  12.                     if(e.keyCode == 13){
  13.                         var text = $('input', this).val();
  14.                         $(this).html( text );
  15.                     }
  16.                 });
  17.             });
  18.         </script>
  19.     </head>
  20.     <style>
  21.         body{font-family:Arial; font-size:12px}
  22.         .editText{padding:5px; border:1px solid #ccc; background:#f4f4f4}
  23.     </style>
  24.     <body>
  25.  
  26.         Nombre: <span class="editText">Fulanito de tal</span>
  27.  
  28.     </body>
  29. </html>

lo de la lista no sé si al hacer click en editar traes datos de la db para llenar la lista o traes toda la lista al entrar a la página y queres que esté oculto
  #3 (permalink)  
Antiguo 31/01/2011, 08:57
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 18 años
Puntos: 3
Respuesta: Funcion editar campo con Jquery

Hola Dany_s,

Bueno, gracias por tu ayuda, he modificado muy levemente el código que me publicaste para hacer que cuando presione enter se mande información a una página php y ahí, haga lo que debe hacer, me queda así:

Código Javascript:
Ver original
  1. <html>
  2.         <head>
  3.               <title>Ejemplo</title>
  4.               <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  5.              <script>
  6.                   $(function(){  
  7.                       $('.editText').dblclick( function(){  
  8.                           var text = $(this).text();  
  9.                           $(this).empty().html('<input type="text" value="'+text+'">').find('input').focus();  
  10.                       }).keypress( function(e){  
  11.                           if(e.keyCode == 13){  
  12.                               var text = $('input', this).val();  
  13.                               $(this).html( text );  
  14.                              /*enviar informacion:*/
  15.                              e.preventDefault();
  16.                              $("#destino").load("procesar.php", {nombre: "Juan", edad: 45}, function(){
  17.                     alert("Campo actualizado");
  18.                 });
  19.                           }  
  20.                       });  
  21.                   });  
  22.               </script>  
  23.           </head>  
  24.           <style>  
  25.               body{font-family:Arial; font-size:12px}  
  26.               .editText{padding:5px; border:1px solid #ccc; background:#f4f4f4}  
  27.           </style>  
  28.           <body>
  29.               Nombre: <span class="editText">Fulanito de tal</span>
  30.             <div id="destino"></div>
  31.           </body>  
  32.       </html>

Luego en el archivo procesar.php solo mandas a llamar las variable que recibes por ejemplo:

echo $_POST["nombre"];
echo $_POST["edad"];

Lo que te comentaba el problema es que necesito que en algunos campos no aparezca un cuadro de texto, sino mas bien un cuadro de lista desplegable y ese cuadro de lista se llena a partir de los datos de una tabla en DB.

Por favor me podrías indicar cómo solventar esta situación?

desde ya muchas gracias

Última edición por nh2006; 01/02/2011 a las 09:51
  #4 (permalink)  
Antiguo 02/02/2011, 06:34
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 15 años
Puntos: 65
Respuesta: Funcion editar campo con Jquery

fijate si te sirve algún plugin plugin
http://www.appelsiini.net/projects/jeditable

http://code.google.com/p/jquery-in-place-editor/
  #5 (permalink)  
Antiguo 02/02/2011, 20:18
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 18 años
Puntos: 3
Respuesta: Funcion editar campo con Jquery

Hola,

Gracias por las librerías, pero no logro comprender cómo usarlas, he estado tratando de apregiguar cómo capturo las variables que mandan ambas libreías en un script php pero no logro encontrar cómo.

Una vez he modificado el valor y luego de darle clic en el botón ok ó save, no sé como capturar las variables en el script del lado del servidor para poder usarlas.

Siu me puedes ayudar con eso por favor, no te publico código porque el que traté de modificar era el demo de ambos y en ninguno me funcionó para hacer lo que te digo.
  #6 (permalink)  
Antiguo 04/02/2011, 08:12
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 18 años
Puntos: 3
Respuesta: Funcion editar campo con Jquery

Bueno amigos, creo que mejor toca hacerlo a patita, al menos por el momento, ya tengo la ideal de cómo puede ir el select en lugar del cuadro de texto, me falta probarla, pero con lo que necesito ayuda es que me indique cómo podría hacer lo mismo pero con un textarea, ya que en estos controles si es válido presionar la tecla enter como parte de contenido, se me ocurre que cuendo edite agregarle además del textarea un botón que diga ok y otro cancelar tal como los demos de las librerías, pero no sé cómo podría plantearlo.

Me puedenb ayudar con esto por favor?
  #7 (permalink)  
Antiguo 06/02/2011, 18:17
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 18 años
Puntos: 3
Respuesta: Funcion editar campo con Jquery

Bueno, basándo en tu código, modifico lo siguiente.

Código Javascript:
Ver original
  1. $('.editSelectBoton').dblclick( function(){  
  2.                         var text = $(this).text();  
  3.                         $(this).empty().html('<select><option value="'+text+'">'+text+'</option><option value="Si">Si</option><option value="No">No</option></select><input type="button" id="ok" value="Ok" /><input type="button" id="cancel" value="Cancelar" />').find('select').focus();  
  4.                  }).change( function(e){  
  5.                         var text = $('select', this).val();  
  6.                         $(this).html( text );  
  7.                         /*enviar informacion:*/
  8.                         e.preventDefault();
  9.                         $("#destino").load("procesar.php", {nombre: text, edad: 45}, function(){
  10.                             alert("Campo actualizado");
  11.                         });                  
  12.                  });

Mi pregunta es cómo le hago para que cuando de clic en ok (ya no sería el chage del select) se mande el resultado y cuando de clic en cancelar simplemete vuelva el html que tenia antes del doble clic en el texto del documento html?.

Bueno en realidad lo que quiero hacer es enviar los datos de un select multiple, asi que la idea es enviar todos los datos seleccionados cuando se de clic en el botó ok, aunque pensándolo bien no se necesita el botón ok, por eso les pido nuevamente de favor que me ayuden, y cómo sería para retomar los datos en un archivo php que se manden desde el select múltiple con jquery.

Gracias desde ya

Última edición por nh2006; 06/02/2011 a las 21:25

Etiquetas: funcion, campos
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 09:42.