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

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

24.09.2014, 00:27. Показов 4123. Ответов 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
20 / 19 / 3
Регистрация: 23.09.2014
Сообщений: 285
24.09.2014, 14:53  [ТС]
Так. Я в своем проекте делаю "язычность".
Данное время все работает, но по средствам перезагрузки страницы, что не есть гуд. Все 34 параметра (ну часть из них, не считая ошибок авторизации и т.п.) отображаются на странице.

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

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

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

Можно ли сделать также как у меня было с функцией strlang? Там где необходимо, передаем параметр, скрипт возвращает нужное?
Что-то вроде - <x id="p1" value="10003"></x> - хотя так работать не хочет =(
0
20 / 19 / 3
Регистрация: 23.09.2014
Сообщений: 285
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
20 / 19 / 3
Регистрация: 23.09.2014
Сообщений: 285
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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru