Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/21: Рейтинг темы: голосов - 21, средняя оценка - 5.00
21 / 20 / 3
Регистрация: 23.09.2014
Сообщений: 290

Как передать параметр ajax?

24.09.2014, 00:27. Показов 4136. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В нете нашел пример ajax'а, не много переделав у меня получилось вот что:

Файл index.html
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script type="text/javascript">
$(document).ready(function($key) {
    $.ajax({
      type: "POST",
      data: "key",
      url: "/ajax/ajax.php",
      dataType: "json",
      success: function(data)
      {
        $("#p1").text(data);
        $("#p2").text(data);
      }
    });
});
</script>
</head>
<body>
    <x id="p1"></x>
    <x id="p2"></x>
    ...
</body>
Файл ajax.php -
PHP
1
2
3
4
5
6
7
8
9
10
11
<?
$key = "10001";
$m = file("/filetext");
for($i = 0; $i <> count($m); $i++)
{
    if (strpos($m[$i], $key) != null)
    {
        $data = json_encode(substr($m[$i], 8));
        echo $data;
    }
}
Файл filetext
x10000>>Текст 1
x10001>>Текст 2
x10002>>Текст 3
x10003>>Текст 4
x10004>>Текст 5
x10005>>Текст 6
x10006>>Текст 7
...
Смысл работы этого кода таков:

В файле filetext текст который подгружается ajax запросом на страницу в тег <x id="p1"></x>.
Все вроде работает, во всяком случае меня устраивает, но есть но!, таких параметров у меня 34, и это возможно только начало..
Необходимо передать каким-то образом в коде <x id="p1"></x> ключ той или иной строки, чтобы возвращался нужный текст.

Может я не правильно понимаю, быть может и не в теге <x id="p1"></x> необходимо это делать. Читая про ajax на jQuery, находил примеры передачи параметра по средствам кнопки (Button) и добавлением в "РОСТ" запрос строки data: "key",. Мучая эту тему пришел к выводу что кнопка в моем случае как третий тормоз в авто..

В конце так и не смог понять как передать ключ.
Помогите пожалуйста разобраться.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.09.2014, 00:27
Ответы с готовыми решениями:

Как передать параметр в UI dialog?
$('#dialog').dialog({ modal: true, autoOpen: false, title: &quot;Сюда переменную&quot; }); Как можно присвоить значение title...

Как передать параметр через ссылку?
Здравствуйте. Подскажите как через ссылку передать параметр файлу contact.php, если js перехватывает клик и открывает форму обратной связи?...

Как передать массив из php в ajax?
Перерыл все форумы, все говорят о передаче через JSON, но я понятия не имею как это работает. ...

6
284 / 283 / 73
Регистрация: 06.05.2013
Сообщений: 1,613
24.09.2014, 08:41
JavaScript
1
data: {key:13}
примерно так передаётся параметр. Т.е. в ajax.php можно сделать

PHP
1
$key = $_POST['key']
и в переменной key будет переданный параметр. И исходя из него уже выводить что нужно. МОжно и больше параметров, типа

JavaScript
1
data: {age:13, name:'alex', sex:'male'}
0
21 / 20 / 3
Регистрация: 23.09.2014
Сообщений: 290
24.09.2014, 14:53  [ТС]
Так. Я в своем проекте делаю "язычность".
Данное время все работает, но по средствам перезагрузки страницы, что не есть гуд. Все 34 параметра (ну часть из них, не считая ошибок авторизации и т.п.) отображаются на странице.

Как это работает сейчас:
создал в отдельном скрипте функцию (ныне это ajax.php) обработки строк файла filetext;
заинклюдел его в начале странице, а на месте где надо написать то-или иное, стоял код вызывающий функцию "strlang("10003", $language)".

В соответствии с Вашей рекомендации, sMockingbird, мне придется создавать 34 параметра в java в переменной data:?

Или я не верно понял смысл ответа?

Можно ли сделать также как у меня было с функцией strlang? Там где необходимо, передаем параметр, скрипт возвращает нужное?
Что-то вроде - <x id="p1" value="10003"></x> - хотя так работать не хочет =(
0
21 / 20 / 3
Регистрация: 23.09.2014
Сообщений: 290
28.09.2014, 00:35  [ТС]
Ни у кого нет идей?
0
работяга
368 / 368 / 52
Регистрация: 23.05.2010
Сообщений: 947
28.09.2014, 09:39
Не вижу ничего страшного, если язык меняется с перезагрузкой страницы. Но если уж приспичило, то для начала с логикой работы определитесь.

1) Если меняется язык, лучше всё же сделать один запрос к файлу и получить разом все необходимые данные. Делать 50 запросов к файлу для каждой фразы - не надо.

2) Принцип работы ajax - сделал запрос к файлу, получил данные, дальше с этими данными надо что-то сделать. В вашем случае расставить фразы в соответствующие дивы. Так как фраз много, необходимо придумать, как сопоставлять фразу и див. Например, каждому диву с языковой фразой присваивать соответствующий класс
HTML5
1
2
3
4
<div class="x10000"></div>
<div class="x10001"></div>
<div class="x10002"></div>
...
3) Таким образом, мы приходим к тому, что нам надо в ajax.php сформировать такой массив, ключами которого будут коды фраз, а значениями - сами фразы.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
$arFile = file('/filetext'); //файл в корне??
 
$arResult = array();
foreach($arFile as $line)
{
    $key = substr($line, 0, 6);
    $value = substr($line, 8);
 
    $arResult[ $key ] = $value;
}
 
echo json_encode($arResult);
?>
4) Когда щёлкаем по ссылке смены языка у нас должен запускаться ajax (я сделал по клику на любом месте страницы)
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$(document).click(function() {
    $.ajax({
        type: 'POST',
        url: '/ajax/ajax.php',
        dataType: 'json',
        success: function(obj)
        {
            for(key in obj)
            {
                $('.' + key).text(obj[key]);
            }
        }
    });
});
Здесь идёт перебор полученного объекта и подстановка фраз в дивы, имеющие соответствующие классы.

5) Если для данной страницы требуются не все фразы, то стоит отправлять файлу ajax.php коды фраз, которые необходимо получить. В вашем случае как - надо это реализовывать?
0
21 / 20 / 3
Регистрация: 23.09.2014
Сообщений: 290
30.09.2014, 00:45  [ТС]
Во многом Вы etalord, правы. Но если перезагружать страницу теряется смысл в ajax, т.к. можно оставить функцию которая будет делать необходимы запросы и устанавливать их на нужное место. И в данном случае нет необходимости создавать массив данных в памяти и забывать код лишними скриптами.

Интересует различие скорости работы ajax и вызова функции в данной задачи - но это так, отходя от темы.

И еще вопрос, как вызвать ajax из выпадающего списка (select)?
0
работяга
368 / 368 / 52
Регистрация: 23.05.2010
Сообщений: 947
30.09.2014, 07:25
Вы хотите использовать ajax вместо функции получения языковых фраз? На мой взгляд, не очень удачная идея. Будет тратится время на запрос к другому файлу, а если сервер тормознёт, некоторое время будете видеть страницу вообще без текста. Как поисковые роботы будут индексировать такую страницу - тоже вопрос, возможно, они вообще текста не увидят. Ajax не для этого нужен. Не для формирования страницы, а для изменения данных на странице. Т.е. при загрузке станицы должна запускаться функция получения языковых фраз. А уже при выборе другого языка запускаем ajax.
JavaScript
1
2
3
$('select').change(function() {
    // код
});
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.09.2014, 07:25
Помогаю со студенческими работами здесь

Как правильно передать данные Ajax?
Всем привет, подскажите как передать данные!! есть ФОРМА &lt;form enctype=&quot;multipart/form-data&quot; action=&quot;upload.php&quot;...

Как передать результат запроса ajax в переменную javascript?
Есть функция, мне нужно получить значение переменной end в этой функции function(data) { //alert(data); end = data; } чтоб...

Как передать this в метод success объекта $.ajax - jQuery ?
Здравствуйте , помогите разобраться . Есть такой объект с помощью ajax запроса получает данные и нужно эти данные в виде массива хранить в...

Передать данные из формы, и внешнюю переменную, как? Ajax
Доброго времени суток. Вопрос может показаться легким) Есть функция //Функция для отправки формы средствами Ajax function...

Как передать значение оператора this в метод success объекта $.ajax
Здравствуйте друзья! Есть такая задача передать значение оператора this в метод success объекта $.ajax, которое было передано в метод...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru