awesome
Legacy Member
De bedoeling van mijn script is om een voorbeeld te tonen van de inhoud van een textarea. Ik werk met BBCode en heb nog geen deftige WYSIWYG gevonden die dit kan behandelen in het formulier zelf. Vandaar dat ik via ajax en een 'refresh' knop de inhoud wil tonen om zo productiever te kunnen werken.
Het enige probleem is dat ik niet weet hoe ik data kan sturen als één $_POST element. Heb me rot gezocht maar niets gevonden en dus volgend script gebruikt:
Dit werkt uiteraard, maar het is vereist om de functie 'encodeURIComponent' te gebruiken, omdat anders mijn $_POST array verkloot wordt in de php-file door speciale tags als "=", "<", ...
Maar nu krijg ik in mijn php file de inhoud niet meer naar de oorspronkelijke waarde van de textarea, meer precies de \n en \r stukjes voor de nieuwe regels.
Het enige probleem is dus de newlines en linebreaks, waarvan de "\" precies wordt gestripped. Ik heb dit opgelost met str_replace in php en de output is kwasie hetzelfde maar uiteraard met wat bugs.
2 oplossingen zijn mogelijk:
grtz
EDIT: Net gemerkt dat in firefox de nieuwe regels in een textarea met \n aangeduid worden. Het is onmogelijk om elke 'n' te replacen met een '<br />'. Bah
Het enige probleem is dat ik niet weet hoe ik data kan sturen als één $_POST element. Heb me rot gezocht maar niets gevonden en dus volgend script gebruikt:
Code:
var str = encodeURIComponent(document.getElementById("article").innerHTML);
var query = 'test=' + str;
var url = "/scripts/news/article_preview_handler.php";
xmlhttp.open("POST", url, true);
xmlhttp.onreadystatechange = handleStateChange;
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-Length", query.length);
xmlhttp.send(query);
Dit werkt uiteraard, maar het is vereist om de functie 'encodeURIComponent' te gebruiken, omdat anders mijn $_POST array verkloot wordt in de php-file door speciale tags als "=", "<", ...
Maar nu krijg ik in mijn php file de inhoud niet meer naar de oorspronkelijke waarde van de textarea, meer precies de \n en \r stukjes voor de nieuwe regels.
wordt dan in mijn preview venstertest
test
testrntest
Het enige probleem is dus de newlines en linebreaks, waarvan de "\" precies wordt gestripped. Ik heb dit opgelost met str_replace in php en de output is kwasie hetzelfde maar uiteraard met wat bugs.
2 oplossingen zijn mogelijk:
- Ofwel in php de string deftig decoden
- ofwel kunnen data sturen binnen $_POST['test'] zonder "test=" + var, dus via headers ofzo. zodat ik de data niet moet encoden.
grtz
EDIT: Net gemerkt dat in firefox de nieuwe regels in een textarea met \n aangeduid worden. Het is onmogelijk om elke 'n' te replacen met een '<br />'. Bah


standaard $_POST ophalen.