отправить две переменные через AJAX / JSON - PullRequest
1 голос
/ 04 февраля 2011

Я пытался отправить две переменные через ajax / json, но что-то пошло не так.

первый:

var searchbox = $(this).val();

var datastring = 'searchword='+ searchbox;

второй:

<?php $lang = $_GET[lang]; ?>

ajax / json:

$.ajax({
    type: "POST",
    url: "files/search.php",
    data: dataString+"&lang=<?php $lang ?>",
    cache: false,
    success: function(html)
    {
    ...(etc)

на странице search.php Мне нужно:

$searchrequest = $_POST['searchword'];

$lang = $_POST['lang'];

и $searchrequest работает, но $ lang не использует передаваемые данные.

Я пытался создать массив из этих двух данных и других, но ничего.Может ли кто-нибудь помочь или сказать лучший способ сделать это?

Ответы [ 2 ]

2 голосов
/ 04 февраля 2011

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

<?php $lang = $_GET['lang']; ?>

и вам нужно echo значение, содержащееся в $lang:

 data: dataString+"&lang=<?php echo $lang ?>",

Но если строка в $lang содержит какой-либо другой небезопасный символ URI (скорее всего, не так, как вы получаете его из $_GET, но все же), вы должны использовать функцию escpape:

data: dataString+"&lang=" + escape('<?php echo $lang ?>'),

или даже лучше (также кодирует searchbox правильно:

data: {searchword: searchbox, lang: "<?php echo $lang ?>"},

Кроме того, вы можете отправить переменную через GET, добавив ее в URL:

url: "files/search.php?lang=<?php echo $lang ?>",
1 голос
/ 04 февраля 2011

Этот код, который вы использовали:

<?php $lang ?>

Ничего не печатает.Вам нужно

<?php echo $lang; ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...