Foros del Web » Programando para Internet » Javascript » Frameworks JS »

pasar variable con & en AJAX

Estas en el tema de pasar variable con & en AJAX en el foro de Frameworks JS en Foros del Web. Hola, tengo una código en el que un formulario llama a una función de AJAX, la típica: function enviarDatos(formname){ var id= document[formname].id.value; var youtube = ...
  #1 (permalink)  
Antiguo 17/02/2010, 18:44
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años, 7 meses
Puntos: 15
pasar variable con & en AJAX

Hola, tengo una código en el que un formulario llama a una función de AJAX, la típica:

function enviarDatos(formname){

var id= document[formname].id.value;
var youtube = document[formname].youtube.value;

//instanciamos el objetoAjax
ajax=objetoAjax();
//usando del medoto POST
//archivo que realizará la operacion
//actualizacion.php
ajax.open("POST", "update.php",true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
//mostrar los nuevos registros en esta capa
divResultado.innerHTML = ajax.responseText
//mostrar un mensaje de actualizacion correcta
divFormulario.innerHTML = "<br><span align=center style=\"border:1px solid red; width:400px; font-family:verdana; font-size:10px;\"><br>La actualizaci&oacute;n se realiz&oacute; correctamente<br><br></span><br><br>";
}
}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.send("id="+id+"&youtube="+youtube)
}


el tema como habréis imaginado es q a la variable youtube le paso el link que te da YouTube que contiene & (ampersand) por lo que al enviar la variable youtube y encuentrar el &, el AJAX se lía y piensa que a partir de ahí es otra varible diferente, con lo cual se corta por el & la variable youtube.

sé q con las funciones de php urlencode y urldecode se puede codificar esta dirección para q te oculte el & pero no sé dónde ponerlas.

deciros que la varible youtube llega bien a la función pq hago una alert(youtube) y me la saco perfectamente, por lo que creo q es claro que el tema está en el ajax.send.
  #2 (permalink)  
Antiguo 17/02/2010, 19:10
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: pasar variable con & en AJAX

Usa la función encodeURIComponent():
Código Javascript:
Ver original
  1. "&youtube=" + encodeURIComponent(youtube)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 18/02/2010, 07:01
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años, 7 meses
Puntos: 15
Respuesta: pasar variable con & en AJAX

muchas gracias David!!! funciona perfectamente y encima no hay que descodificarlo en destino ni nada por el estilo (ni idea pq)...

Etiquetas: ajax, pasar, variables
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:07.