Загрузка Jquery Ajax работает только с переменными из одного слова - PullRequest
2 голосов
/ 06 июля 2011

В моем PHP-файле я передаю некоторые переменные из поля ввода в ссылку, которая загружает страницу через функцию jjuery ajax load с этой переменной в ее URL.

Вся эта система работает отлично, но она работает только с переменными из одного слова. Каждый раз, когда в этом есть место, мой вызов Ajax прерывается. Я предполагаю, что это проблема кодирования, но у меня также есть некоторые сомнения. По сути, это сводится к этой строке кода в моем файле PHP, который вызывает шум.

Можно ли выяснить, правильно ли он отформатирован, или почему это может привести к разрыву с запросами с несколькими мирами? К переменной «Ключевое слово» применена функция jQuery trim.

echo  $("#addminimal").load("/addmnml?topic='.$_GET['keyword'].'")  ;

Спасибо.

Ответы [ 4 ]

3 голосов
/ 06 июля 2011

Вам вообще не нужно кодировать.Jquery обрабатывает это для вас:

Вот один из способов:

echo ' $("#addminimal").load("/addmnml", {topic: "'.$_GET['keyword'].'"}) ';

Это работает, потому что .load() принимает второй параметр в паре ключ-значение и выполняет кодирование для вас..

Или лучше, используйте php json:

$params = json_encode(array("topic" => $_GET['keyword']));
echo ' $("#addminimal").load("/addmnml", '.$params.') ';

Надеюсь, это поможет.Приветствия

2 голосов
/ 06 июля 2011

Используйте encodeURIComponent для кодирования пробелов перед отправкой на сервер:

$.ajax
({
    type: 'POST',
    url: 'APage.aspx',
    data: 'word=' + encodeURIComponent('word with space'),
    success: function(Data, TextStatus, XHR)
    {

    },

    error: function(XHR)
    {

    }
});    
1 голос
/ 06 июля 2011

вам нужно закодировать значение ...

С PHP:

echo ' $("#addminimal").load("/addmnml?topic='.urlencode($_GET['keyword']).'") ';

или на стороне javascript:

echo ' $("#addminimal").load("/addmnml?topic="+encodeUriComponent('.$_GET['keyword'].') ';
0 голосов
/ 11 февраля 2016

Только для записи я использовал кодировкуURIComponent, как показано ниже

d_value = $("#dropdown1").val();
d_value = encodeURIComponent(d_value);
$("#dropdown2").load("drop.php?choice=" + d_value);

В основном он использовался для заполнения 2-го раскрывающегося списка на основе выбора первого раскрывающегося списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...