С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 23.04.2015
Сообщений: 11

Вытащить переменную из цикла PHP в функцию JS, и через AJAX обратно в PHP

23.04.2015, 15:38. Показов 2984. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Моя задача сделать форму обратной связи, но не самую простую. Изначально на форме отображается список элементов, уже выбранных из бд:

PHP
1
2
3
4
5
6
7
8
9
echo '<table class="markanstable">';
foreach ($rows as $row) {
    echo '<tr>';
    echo '<td style="text-align:center;">';
        echo '<input class="themelistel" id="listelid" name="listelname" type="image" value="'. $row->title .'" onclick="ShowTextArea('. $row->id . ');";/> <br>';
    echo '</td>';
    echo '</tr>';
}
echo '</table>
Затем, уже после прогрузки страницы (т.е. пхп отработал свою часть) по клику пользователем на один из элементов каким-то образом нужно запомнить значение $row->id и использовать его в дальнейшем для изменения записи в бд sql запросом. И всё это БЕЗ перезагрузки страницы.

Достаточно долго уже бьюсь над проблемой, вроде пришел к выводу, что необходимо использовать AJAX (что и пытаюсь в приведенном коде внутри фукции ShowTextArea), но с ним тоже не получается.

JavaScript
1
2
3
4
5
6
7
function ShowTextArea(cid) {
$.post("index.php","exactId ="+cid, function(s) {
                $("#testdiv").html(cid);
                alert('testdiv=' + $("#testdiv").html());
                
            });
}
Здесь, я так понял, происходит передача данных через метод post в переменную exactId и изменение содержимого блока с id=testdiv. Вот что делать дальше уже не уверен, нужно как-то работать с переменной exactId через php-код, но он уже отработан... Так как же мне организовать работу php-кода с переменной, которая принимает значение только после взаимодействия на клиенте? Пробовал следующее:

PHP
1
2
3
4
5
6
7
8
if (isset($_POST['exactId'])) {
    $phpvar = addslashes($_POST['exactId']);
    $query = "SELECT id, title FROM #__eventcal WHERE id='". $phpvar ."'";
    $database->setQuery( $query );
    $marketingrequests = $database->loadObjectList();
                        
    var_dump($marketingrequests);
}
В этом случае exactId всегда NULL (при входе на страницу это нормально, но должно меняться при отработке функции, но этого не происходит).


Всё не доходит, как именно будет выглядеть схема работы страницы:

1) Прогружается страница, отображается список ссылок, пхп отработал.
2) Кликаем на одну из ссылок, происходит вызов js функции, в нее параметром передается Id, в ней же с помощью AJAX мы отправляем на сервер данные post запросом в виде второго параметра
3) Имеем обновленную страницу без ее перезагрузки.
4) Дальше нужно как-то использовать в php данные из AJAX post, но вот и вопрос, как это сделать?

Поправьте, что не так.


Задавал вопрос в ветке начинающих пхп-программистов, сказали парень тебе не сюда. Не нашел ветки конкретно по AJAX, поэтому спрашиваю здесь. Извините, если опять промазал.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.04.2015, 15:38
Ответы с готовыми решениями:

Передать через Ajax php переменную
Со страницы авторизации, идет перенаправление на главную страницу. Все данные о пользователи хранятся в php сессии.Далее на главной...

Передать переменную из js в php и обратно
function getstations(value) { var str=document.getElementById('street'); мне str.value надо передеать в select.php, чтобы к нему...

Передать переменную из php в ajax
Все привет,есть два скрипта php и ajax,находятся они не на одной странице,мне нужно передать значение переменой из php в ajax,как такое...

3
 Аватар для arcmag
347 / 322 / 203
Регистрация: 27.06.2014
Сообщений: 762
23.04.2015, 16:23
Можно вот так попробовать если я правильно понял вам просто нужно передать информацию пхп странице без перезагрузки сайта...
JavaScript
1
2
3
4
5
6
7
function ShowTextArea(cid){
    var q = new XMLHttpRequest;
    q.open("GET",youPHPpage.php+"?cid="+cid); // отправляем ваш $row->id странице ПХП 'youPHPpage.php'
    // после чего в этой странице получаем $row->id при помощи $cid = $_GET['cid'];
    // ну а дальше делайте с ней сто вам нужно...
    q.send();
}
Добавлено через 14 минут
поправка
JavaScript
1
2
3
4
5
6
7
function ShowTextArea(cid){
    var q = new XMLHttpRequest;
    q.open("GET","youPHPpage.php?cid="+cid); // отправляем ваш $row->id странице ПХП 'youPHPpage.php'
    // после чего в этой странице получаем $row->id при помощи $cid = $_GET['cid'];
    // ну а дальше делайте с ней сто вам нужно...
    q.send();
}
0
1 / 1 / 0
Регистрация: 23.04.2015
Сообщений: 11
23.04.2015, 16:40  [ТС]
arcmag, спасибо за ответ. Мне, как начинающему, важно иметь четко работающий кусок кода, на который можно положиться и от него плясать.

Только что попробовал сделать по-вашему варианту. Возникла еще парочка вопросов: $cid = $_GET['cid'] можно писать где угодно на странице? Для проверки и дебага я написал такой код:

PHP
1
2
3
4
5
6
    
if (isset($_GET['cid'])) {
    $cid=$_GET['cid'];
    var_dump($cid);
    exit;
}
Но $cid всё также NULL при первой прогрузке и затем после отработки функции по нажатию на ссылки (а она отрабатывает 100%, алертами проверено в начале и в конце).
0
 Аватар для arcmag
347 / 322 / 203
Регистрация: 27.06.2014
Сообщений: 762
23.04.2015, 17:14
Лучший ответ Сообщение было отмечено Explosive68 как решение

Решение

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
    var q = new XMLHttpRequest(); // создаем экземпляр объекта XMLHttpRequest
    q.open("GET","youPHPpage.php?cid="+cid); // открываем соединение
    // первым аргументов передаем метод запроса (GET, POST и тд)
    
    // вторым аргументом передаем адрес PHP страницы которой мы отправим наши данные из JS (youPHPpage.php )
    // после адреса ставится знак (?) 
    // пишется имя переменной которая передается пхп файлу и ее значение ("youPHPpage.php?cid="+cid)  
    
    // третим аргументом может передаваться значение true или false 
    // использовать ли асинхронный запрос (если не указывать то true)
    
    q.send(); // отправляем запрос нашему PHP файлу
Короче вам нужно тут читать
https://ru.wikipedia.org/wiki/XMLHttpRequest
я не очень хорошо умею объяснять да и долго это слишком получится.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.04.2015, 17:14
Помогаю со студенческими работами здесь

Передать массив в формате JSON из AJAX в PHP и обратно
Здравствуйте! Помогите пожалуйста разобраться. Нужно передать массив из AJAX в PHP, а потом другой массив из PHP обратно в AJAX. ...

Получить конкретную php-переменную ajax-запросом
Есть форма для отправки комментариев.. Обработчику отправляются post-данные. возникла необходимость получить их назад в обработанной форме...

Через ajax в url:'ajax.php', нужно передать одну переменную, и значение radio кнопки
Как значение radio передать я разобрался, а вот как еще переменную со страницы кинуть в url: ajax.php Всем спасибо

Отправить данные через Ajax в определённую функцию PHP
Здравствуйте! Долго думал как объяснить суть вопроса, в общем есть функция ajax : $(document).ready(function(){ ...

Переменную из цикла в js записать в переменную php
Есть цикл на JS for (glavnoe = 0;glavnoe&lt;=3;glavnoe++){ код js код php } нужно,в переменную $n вписать значение glavnoeкаждый...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru