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ón se realizó 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.