Bonjour,
Je suis en train de développer un formulaire composé de 3 champs :
- catégorie
- titre
- texte
Le champs texte intègre le plugin CKEditor qui permet de faire de la mise en forme de texte + insertion image et vidéo.
Une fois que les champs sont complétés, je fais un $.post pour enregistrement en base de données.
Le souci est le suivant : Lors de l'intégration d'une vidéo, le code associé est le suivant :
<div class="embeddedContent oembed-provider- oembed-provider-youtube" data-align="center" data-maxheight="315" data-maxwidth="560" data-oembed="https://youtu.be/vjzWGxrP_rY" data-oembed_provider="youtube" data-resizetype="custom" style="text-align: center;"><iframe allowfullscreen="true" allowscriptaccess="always" frameborder="0" height="315" scrolling="no" src="//www.youtube.com/embed/vjzWGxrP_rY?wmode=transparent&jqoemcache=0sWQ4" width="560"></iframe></div>
A la fin de ce code, j'ai le caractère & (...transparent&jqoemcache=0sWQ4...), donc si j'envoie ça à mon script php, via la variable POST, le & sera considéré comme un séparateur de variable (var1=val1&var2=val2&var3=val3...) et va m'empêcher d'enregistrer la totalité de la valeur.
Pour éviter cela, j'ai décidé d'utiliser la fonction serialize() et voici le résultat de la serialization :
%3Cdiv+class%3D%22embeddedContent+oembed-provider-+oembed-provider-youtube%22+data-align%3D%22center%22+data-maxheight%3D%22315%22+data-maxwidth%3D%22560%22+data-oembed%3D%22https%3A%2F%2Fyoutu.be%2FvjzWGxrP_rY%22+data-oembed_provider%3D%22youtube%22+data-resizetype%3D%22custom%22+style%3D%22text-align%3A+center%3B%22%3E%3Ciframe+allowfullscreen%3D%22true%22+allowscriptaccess%3D%22always%22+frameborder%3D%220%22+height%3D%22315%22+scrolling%3D%22no%22+src%3D%22%2F%2Fwww.youtube.com%2Fembed%2FvjzWGxrP_rY%3Fwmode%3Dtransparent%26amp%3Bjqoemca
3E%3C%2Fiframe%3E%3C%2Fdiv%3E%0D%0A%0D%0A%3Cp%3E%26nbsp%3B%3C%2Fp%3E%0D%0A
Si le & semble bien converti en %26, juste après, dans la string j'ai ça : 26amp%3Bjqoemca…3E%3C%
Pour ces ... au lieu de la fin du mot "cache" ? Du coup le texte n'est pas complètement enregistré et la vidéo n'est pas correctement affichée. Comment faire pour convertir correctement cette chaîne et comment faire pour passer en jQuery les variables au script php sans que les valeurs soient altérées ?
Merci de vos idées / aide / conseils !
Partager