Foros del Web » Programando para Internet » Javascript »

problema al enviar datos con script

Estas en el tema de problema al enviar datos con script en el foro de Javascript en Foros del Web. Tengo un script en el cual estoy enviando datos a un php y los datos los recojo de el input mensaje. $("#div_domi").load("buscar.php?id="+$("#mensaje") .attr('value') el problema ...
  #1 (permalink)  
Antiguo 27/02/2012, 02:46
Avatar de alfoner  
Fecha de Ingreso: abril-2009
Mensajes: 146
Antigüedad: 15 años
Puntos: 0
Exclamación problema al enviar datos con script

Tengo un script en el cual estoy enviando datos a un php y los datos los recojo de el input mensaje.

$("#div_domi").load("buscar.php?id="+$("#mensaje") .attr('value')

el problema es que en cuando el dato lleva un espacio no me lo recoge
solo me recoge el texto sin espacios.
  #2 (permalink)  
Antiguo 27/02/2012, 03:26
Avatar de rigobcastro  
Fecha de Ingreso: febrero-2012
Ubicación: Lejanías
Mensajes: 69
Antigüedad: 12 años, 2 meses
Puntos: 21
Respuesta: problema al enviar datos con script

Usa el segundo parámetro data para enviar los datos. Quedaría así:

Código Javascript:
Ver original
  1. $("#div_domi").load("buscar.php", { id : $("#mensaje").attr('value') });

La variable te llega como $_POST y no como $_GET. Si no quieres cambiar el método de colección, puedes usar el método abrevidado $.get(). Sería algo asi:


Código Javascript:
Ver original
  1. $.get("buscar.php", { id : $("#mensaje").attr('value') }, function(html){
  2.      return $("#div_domi").html(html);
  3. });

Ensaya esto y cuentas cómo te fue.

Saludos!
  #3 (permalink)  
Antiguo 27/02/2012, 03:27
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Tendrias que hacer un urlencode para codificar la cadena antes de enviarla como parámetro.
  #4 (permalink)  
Antiguo 27/02/2012, 03:31
Avatar de rigobcastro  
Fecha de Ingreso: febrero-2012
Ubicación: Lejanías
Mensajes: 69
Antigüedad: 12 años, 2 meses
Puntos: 21
Respuesta: problema al enviar datos con script

Cita:
Iniciado por Malenko Ver Mensaje
Tendrias que hacer un urlencode para codificar la cadena antes de enviarla como parámetro.
Si el value del input #mensaje es traído desde PHP que se haga el urlencode pero por lo que veo usa ajax y "buscar.php" se llama cada vez que cambia el value del input o cada vez que da click en algún activador.

Como opcional puede usar encodeURIComponent() de javascript nativo.

Código Javascript:
Ver original
  1. encodeURIComponent($("#mensaje").attr('value'));

Aunque cuando se parsean los datos como objeto en los metodos AJAX de jQuery, este lo hace automaticamente.
  #5 (permalink)  
Antiguo 27/02/2012, 05:14
Avatar de alfoner  
Fecha de Ingreso: abril-2009
Mensajes: 146
Antigüedad: 15 años
Puntos: 0
Respuesta: problema al enviar datos con script

Y como especificaría la variable con la que lo envio?
aquí no se como recoger el dato ya que lo recogía con $_REQUEST["id"] y otro con $_REQUEST["dato"]

$("#div_domi").load("buscar.php", { id : $("#mensaje").attr('value') });

hasta ahora lo mandaba asi

$("#div_domi").load("buscar.php?id="+$("#mensaje ") .attr('value') + "&datos="+$("#masdatos").attr('value')
  #6 (permalink)  
Antiguo 27/02/2012, 21:16
Avatar de rigobcastro  
Fecha de Ingreso: febrero-2012
Ubicación: Lejanías
Mensajes: 69
Antigüedad: 12 años, 2 meses
Puntos: 21
Respuesta: problema al enviar datos con script

Si pones asi:

Código Javascript:
Ver original
  1. // Se declaran variables para una mejor organización
  2. var $id = $("#mensaje").attr('value'),
  3. $datos = $("#masdatos").attr('value');
  4.  
  5. $("#div_domi").load("buscar.php", { id : $id , datos : $datos  });

Las llaves del objeto son las mismas que la del POST...

osea id se recibiria asi $_POST['id'] y datos se recibiria $_POST['datos'] o con el metodo $_REQUEST como quieras usarlo..

Todos los indices del objeto data { indice : variable, indice2 : variable ... etc.. } sirven para recibir los datos, son los mismos indices que la recoleccion. $_REQUEST['indice'], $_REQUEST['indice2']

Espero hayas comprendido...

Etiquetas: input, 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 00:11.