У меня есть скрипт php, и я использую с ним ajax. У меня есть форма textarea, связанная с классом ajax
Проблема, когда я передаю такой текст, как (&some text), функция возвращает пустой текст, я предполагаю, что у меня проблема с (&).
Функция javascript:
function sendFormData(idForm, dataSource, divID, ifLoading)
{
var postData='';
var strReplaceTemp;
if (XMLHttpRequestObject)
{
XMLHttpRequestObject.open("POST", dataSource);
XMLHttpRequestObject.setRequestHeader("Method", "POST " + dataSource + " HTTP/1.1");
XMLHttpRequestObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
XMLHttpRequestObject.onreadystatechange = function()
{
if (XMLHttpRequestObject.readyState == 4 &&
XMLHttpRequestObject.status == 200)
{
try
{
var objDiv = document.getElementById(divID);
objDiv.innerHTML = XMLHttpRequestObject.responseText;
}
catch(e){document.write("sendFormData: getElementById(divID) Error");}
}
else
{
if (ifLoading)
{
try
{
var objDiv = document.getElementById(divID);
objDiv.innerHTML = "<img src=loading.gif>";
}
catch(e){document.write("sendFormData->ifLoading: getElementById(divID) Error");}
}
}
}
for(i=0; i<document.getElementById(idForm).elements.length - 1; i++)
{
strReplaceTemp = document.getElementById(idForm).elements[i].name;
postData += "&aryFormData["+strReplaceTemp+"][] = "+document.getElementById(idForm).elements[i].value;
}
postData += "&parm = "+new Date().getTime();
try
{
XMLHttpRequestObject.send(postData);
}
catch(e){document.write("sendFormData: XMLHttpRequestObject.send Error");}
}
}
Этот пост серьезно мог бы использовать более подходящее название.
Боже мой, рукописный AJAX. / дрожь






когда я вижу HTML и & и проблему, я стараюсь убедиться, что моя кодировка символов указана правильно.
Кроме того, код в вашем PHP-скрипте может подавляться неэкранированным символом '&'.
Убедитесь, что ваш & закодирован с помощью & amp; если вы передаете его с помощью Javascript. Все & должны быть закодированы, иначе некоторые браузеры могут немного нервничать, и любой валидатор будет жаловаться на вас.
В вашей функции, если вы оберните document.getElementById (idForm) .elements [i] .value и даже strReplaceTemp (в вашем postData + =) строку с «encodeURI ()», у вас не будет никаких проблем с правильностью данных полученный.
Если он не работает, скорее всего, виноват ваш PHP. Вы можете попробовать escape или encodeURIComponent вместо encodeURI, но encodeURI должен помочь. Когда вы бросаете предупреждение (postData) внутри своей попытки, что в нем говорится?
Можете ли вы опубликовать фрагмент кода, который вы используете? Было бы легче ответить, если бы мы знали контекст вашего вопроса.