Потеря символов при передаче через Post

Тема в разделе "PHP программирование", создана пользователем -, 29 ноя 2010.

  1. Гость

    В PHP новичок, пишу относительно недавно.

    Надо передать строку из текстового поля через Ajax в PHP для занесения её в базу.
    Строка имеет вид: "Сколько будет 2+2?" . Банально, но тут то и проблема.
    Alert в функции выводит строку как надо, то есть "Сколько будет 2+2?"

    Ajax:

    Код (Text):
    function save_(id_quest,id_text)
    {   alert(document.getElementById(id_text).value);
    $.ajax({
    type: 'POST',
    url: 'save_question.php',
    data: 'quest_id='+document.getElementById(id_quest).value +
    '&quest_text=\''+document.getElementById(id_text).value+'\'',
    success: function(html)
    {
    $('#answer').html(html);
    }
    });
    }

    В PHP-скрипт методом POST строка приходит вот такая: "Сколько будет 2 2?". :)

    Символа "+" нет.

    Куда он делся, почему это происходит и как это исправить/обойти ?
     
  2. Гость

    В javascript?
     
  3. Гость

    Код (Text):
    function save_(id_quest,id_text)
    {   alert(document.getElementById(id_text).value);
    $.ajax({
    type: 'POST',
    url: 'save_question.php',
    data: 'quest_id='+document.getElementById(id_quest).value +
    '&quest_text='+escape(document.getElementById(id_text).value),
    success: function(html)
    {
    $('#answer').html(html);
    }
    });
    }

    в итоге получил строку u0421 u043A u043E u043B u044C u043A u043E %u0431%u0443%u0434%u0435%u0442 2 2?;

    Плюса как не было, так и нет.
     
  4. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    энкодить + надо, можно так encodeURIcomponent(document.getElementById(id_text).value) и потом декодить аналогично.
     
  5. Гость

    как вариант. А почему теряется символ "+" при POST'e и какие ещё символы могут быть утеряны?
     
  6. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    ну, вроде только инглиш алфавитный и цифры обычно без проблем передаются. "вроде" говорю, потому что не пхпшник))))
    мне лень сейчас искать ссылки на стандарты и т.п., вот тут где-то они упоминаются, погуглите.
    например, вот такой полезный запрос<style type="text/css">@import url(http://www.google.com/cse/api/branding.css);</style><div class="cse-branding-bottom" style="background-color:#FFFFFF;color:#000000"> <div class="cse-branding-form"> <form action="http://www.google.ru/cse" id="cse-search-box" target="_blank"> <div> <input type="hidden" name="cx" value="partner-pub-9522070088145711:itpxzrl8xir" /> <input type="hidden" name="ie" value="windows-1251" /> <input type="text" value="encodeuricomponent php" name="q" size="31" /> <input type="submit" name="sa" value="Поиск" /> </div> </form> </div> <div class="cse-branding-logo"> [​IMG] </div> <div class="cse-branding-text"> Найдется все!   </div></div>
    будет восприниматься как http://www.google.com/search?q=encodeuricomponent+php
     
  7. acorn

    acorn PHP Developer

    Регистрация:
    29 авг 2004
    Сообщения:
    599
    Симпатии:
    3
    да тут php ни грамма на самом деле, пост он везде пост :rolleyes:
     
  8. AlexanderC

    AlexanderC Гость

    encode товарищи, encode !!!(...URIComponent)
     
Загрузка...

Поделиться этой страницей