a1exey
Новичок
JS: символ & в переменной формы всё портит
Народ, помогите плиз, есть чат на аяксе, chat.php, в чате форма такго рода
<form id="chatForm" name="chatForm" onsubmit="sendComment();" action=?>
<input type="text" size="55" name="chatbarText" id="chatbarText">
</form>
вот функция sendComment() которая принимает значение:
var SendChaturl = "chat_data_send.php";
function sendComment()
{
currentChatText = document.forms['chatForm'].elements['chatbarText'].value;
if (currentChatText != '' & (httpSendChat.readyState == 4 || httpSendChat.readyState == 0))
{
param = 'c='+ currentChatText;
// alert(currentChatText);
httpSendChat.open("POST", SendChaturl, true);
httpSendChat.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
httpSendChat.onreadystatechange = handlehHttpSendChat;
httpSendChat.send(param);
document.forms['chatForm'].elements['chatbarText'].value = '';
}
}
при выводе сообщения типа "бла&бла" через алерт всё ОК, но до БД доходит только "бла"
пхпшный файлик для получения значения текста:
$text = $_POST[c];
if (trim($text) != '')
{
$text = str_replace(chr(209).chr(145), "ё", $text); // "ё"
$text = str_replace(chr(208).chr(129), "Ё", $text); // "ё"
for ($my_x=144; $my_x <=239 ; $my_x++ ){ // от "А" до "п" без "ё"
$text = str_replace(chr(208).chr($my_x-48), chr($my_x), $text);
}
for ($my_x=128; $my_x <=192 ; $my_x++ ){ // от "п" до "я"
$text = str_replace(chr(209).chr($my_x), chr($my_x+112), $text);
}
тут уже идёт запрос в базу....
}
может кто подскажет почему после & всё срезается ?...и кстати, символ "+" в чате не отображается. видимо & идёт как следующий параметр в строке запроса, но как бы это пофиксить?
Народ, помогите плиз, есть чат на аяксе, chat.php, в чате форма такго рода
<form id="chatForm" name="chatForm" onsubmit="sendComment();" action=?>
<input type="text" size="55" name="chatbarText" id="chatbarText">
</form>
вот функция sendComment() которая принимает значение:
var SendChaturl = "chat_data_send.php";
function sendComment()
{
currentChatText = document.forms['chatForm'].elements['chatbarText'].value;
if (currentChatText != '' & (httpSendChat.readyState == 4 || httpSendChat.readyState == 0))
{
param = 'c='+ currentChatText;
// alert(currentChatText);
httpSendChat.open("POST", SendChaturl, true);
httpSendChat.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
httpSendChat.onreadystatechange = handlehHttpSendChat;
httpSendChat.send(param);
document.forms['chatForm'].elements['chatbarText'].value = '';
}
}
при выводе сообщения типа "бла&бла" через алерт всё ОК, но до БД доходит только "бла"
пхпшный файлик для получения значения текста:
$text = $_POST[c];
if (trim($text) != '')
{
$text = str_replace(chr(209).chr(145), "ё", $text); // "ё"
$text = str_replace(chr(208).chr(129), "Ё", $text); // "ё"
for ($my_x=144; $my_x <=239 ; $my_x++ ){ // от "А" до "п" без "ё"
$text = str_replace(chr(208).chr($my_x-48), chr($my_x), $text);
}
for ($my_x=128; $my_x <=192 ; $my_x++ ){ // от "п" до "я"
$text = str_replace(chr(209).chr($my_x), chr($my_x+112), $text);
}
тут уже идёт запрос в базу....
}
может кто подскажет почему после & всё срезается ?...и кстати, символ "+" в чате не отображается. видимо & идёт как следующий параметр в строке запроса, но как бы это пофиксить?