Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   посылка переменной (https://javascript.ru/forum/jquery/44055-posylka-peremennojj.html)

kent0026 04.01.2014 15:01

посылка переменной
 
суть, немогу присвоить значение переменной jquery переменной php, т.е, есть таблица из которой я получаю индекс строки и присваиваю ее переменной с помощью jquery, хочу присвоить это значение переменной на php но не могу, данные отправляются это видно в консоли браузера, но когда проверяю переменную php пишет что переменная пуста, получаю индекс строки так:

$(function() {
    $("tbody td").click(function(e) {
    var text_post1 =$(this).parent().parent().children().index($(this).parent());
    text_post2=(text_post1+1);


отправляю так:

$.post('123.php', {text_post2:text_post1}, function(data){
	alert(text_post1);
	});


открывается окно в котором проверяю передалось ли значение переменной jquery text_post2 переменной php text_post1:

myWin= open("123.php", "displayWindow",
    "width=400,height=300,status=no,toolbar=no,menubar=no");
});
});


код файла 123.php в котором я проверяю значение переменной:

<?php
include ('script.php')
?>



<?php
if (isset($_POST['text_post1']))
 {
  $k=($_POST['text_post1']);
    echo $k;
 }
else
 {
 echo ('Поле пустое!');
 }
?>



вопрос как передать значение переменной из jquery в переменную php, смотрел много либо одно и то же, либо ничего не понимаю, да когда кликаю на строку, то alert выдает нужное мне значение, значит переменная text_post2(jquery) не пуста и часть кода работает нормально, и судя по данным консоли браузера переменная передается но в переменную php не записывается....

danik.js 04.01.2014 15:15

Цитата:

Сообщение от kent0026
открывается окно в котором проверяю передалось ли значение переменной jquery text_post2 переменной php text_post1:

Стоп стоп стоп. Но тут то ты в POST ничего не передаешь? Вобще, при открытии окна браузер отправляет GET-запрос, а не POST.
Да и цель открытия окна не понятна. У тебя же в alert выводится ответ, тебе этого мало? Можешь еще консоль браузера поизучать - там много интересного.

Цитата:

Сообщение от kent0026
немогу присвоить значение переменной jquery

Какая еще нафиг "переменная jquery" ? Ты хоть понимаешь че ты лепечешь? Бегом учить матчасть!

kent0026 04.01.2014 15:34

да, это упрощенная версия того, что мне нужно, и alert никакой особой роли не играет, это проверка получаю ли я нужные данные когда кликаю на строку, цель открытия, если это играет значение в данной задаче, заключается в том, чтобы в будущем когда будет подключена база данных при помощи id загрузить только одну строку в открывшемся окне, id я получаю кликом на строку, а вот по поводу передачи интересно, я думал что этой строкой я посылаю значение:
$.post('123.php', {text_post2:text_post1}, function(data){
    alert(text_post1);


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

danik.js 04.01.2014 16:03

Цитата:

Сообщение от kent0026
я думал что этой строкой я посылаю значение

Ну да, разумеется. Только твои POST данные никуда ведь не сохраняются, верно? Например в сессию или базу данных.

Поэтому когда ты делаешь второй запрос (его делает браузер при window.open() ) - старые POST-данные, переданные в предыдущем запросе уже не существуют, верно?

Открыть окно POST-запросом можно через форму, не вариант? Правда тогда нельзя указать размеры окна. Или можно использовать псевдо-окно, например какойнибудь fancybox или прочий лайтбокс, тогда можно получить содержимое для отображения любым способом, включая асинхронный POST-запрос.

kent0026 04.01.2014 16:39

Цитата:

Сообщение от danik.js (Сообщение 290540)
Ну да, разумеется. Только твои POST данные никуда ведь не сохраняются, верно? Например в сессию или базу данных.

хм, а в cookie можно записать?, передавать на 2-ю страницу и после изменения данных чистить их? как вариант?

Цитата:

Сообщение от danik.js (Сообщение 290540)
Открыть окно POST-запросом можно через форму, не вариант? Правда тогда нельзя указать размеры окна. Или можно использовать псевдо-окно, например какойнибудь fancybox или прочий лайтбокс, тогда можно получить содержимое для отображения любым способом, включая асинхронный POST-запрос.

а здесь мне нужно почитать, полностью не въехал если честно, на а сам этот запрос правильный?

$.post('123.php', {text_post2:text_post1}, function(data){
    alert(text_post1);


просто по мне так функция все таки не такая должна быть... если вместо alerta поставить другое ну к примеру что то типо $('#селектор').text(); то впринципе результат клика и в текстбокс и хоть куда записывается(кроме переменной) может здесь ошибка...

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

danik.js 04.01.2014 17:34

Цитата:

Сообщение от kent0026
хм, а в cookie можно записать?, передавать на 2-ю страницу и после изменения данных чистить их? как вариант?

Тогда уж лучше сессия.
Цитата:

Сообщение от kent0026
alert(text_post1);

Зачем алертить переменную text_post1? Лучше алерть data - то что пришло от сервера.
Цитата:

Сообщение от kent0026
в общем нужно чтобы после клика открывалось окно и в текстбоксах были данные из БД определенной строки на которую кликнули, любым способом

Ну дык и че ты на жопу приключений ищешь.
Чем не устраивает вариант с window.open('123.php?row_id=' + id)

Где в id тебе надо записать id кликнутой строки. Сервер же готовит либо HTML-код для отображения строки (решение в лоб), либо отсылает чистые данные в JSON-формате, а HTML уже формируешь js-скриптом используя шаблонизацию или UI-фреймворк (крутое решение) - но тогда надо запрос делать аяксом, а окошко открывать с URL about:blank, и впрыскивать HTML через doc.write()
Цитата:

Сообщение от danik.js
Правда тогда нельзя указать размеры окна.

С этим утверждением я поспешил значит..


Часовой пояс GMT +3, время: 19:38.