Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   получение id строки и передача значения переменной php (https://javascript.ru/forum/jquery/42433-poluchenie-id-stroki-i-peredacha-znacheniya-peremennojj-php.html)

danik.js 26.10.2013 14:01

Цитата:

Сообщение от msscriin
jquery посылает эти данные а в php они не сохраняются

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

msscriin 26.10.2013 14:44

Цитата:

Сообщение от Poznakomlus (Сообщение 278201)
  1. загрузилась страница
  2. пользователь кликнул на строку
  3. произошло событие jquery
  4. определилась строка на которое произошло событие
  5. id строки записывается в переменную js
  6. данные переменной записываются в переменную на php методом выбранным вами с помощью js отсылаются на сервер
  7. сервер получает и обрабатывает, отсылает ответ
  8. js скрипт получает ответ и обрабатывает

ясно, но как реализовать этот алгоритм не подскажете?

danik.js 26.10.2013 14:57

Цитата:

Сообщение от Poznakomlus
Научитесь смотреть в консоль

Я бы сказал: научись читать буквы.

Цитата:

Сообщение от danik.js
Также открой вкладку сеть в отладчике браузера и наблюдай за запросом.


msscriin 26.10.2013 15:30

Вложений: 3
Цитата:

Сообщение от danik.js (Сообщение 278210)
Я бы сказал: научись читать буквы.

а консоль пустая

во вкладке текст запроса пишет: dat=1
я так понимаю это и есть то значение которое мне нужно, но почему тогда оно не загружается через $_POST['dat']?

danik.js 26.10.2013 15:47

Чет не похоже на асинхронный запрос. Это же просто страница по адресу blabla/script.php. Какое отношение к этому скриншоту имеет приведенный выше код?
Отладка в IE? Лучше убейте сразу.. Хотяб в сафари отлаживай.

msscriin 26.10.2013 16:03

Цитата:

Сообщение от danik.js (Сообщение 278215)
Чет не похоже на асинхронный запрос. Это же просто страница по адресу blabla/script.php. Какое отношение к этому скриншоту имеет приведенный выше код?
Отладка в IE? Лучше убейте сразу.. Хотяб в сафари отлаживай.

да это немного не то, но смысл тот же, сейчас попробовал на исходном файле в принципе то же самое, а куда именно вставить die?

msscriin 27.10.2013 09:47

попробовал на простом примере, без БД и прочего, две страницы script.php и 123.php, код страницы script.php:

$(function () {

     $('table#tab1 tbody tr').click(function(){
    var text = $(this).attr('id');
         $.post( './123.php', {text:text},  function(ok){
     alert(ok);
     });
    });
});

<table border='2' id='tab1'>
<thead>
<tr>
<th>id</th>
<th>name</th>
<th>surname<th>
</tr>
</thead>
<tbody>
<tr id='1'>
<td>1</td>
<td>Andrey</td>
<td>Cheprov</td>
</tr>
<tr id='2'>
<td>2</td>
<td>Vasya</td>
<td>Guschin</td>
</tr>
</tbody>
</table>
<a href='123.php'>123</a><br>


код страницы 123.php:

<?php
if(isset($_POST['text'])){
$k=$_POST['text'];

echo '<br>';

if($k==1){
print 'gusto';
}else {
print 'pusto';
}
}else{
echo 'no!';
}
?>

значение переменной text передаются методом $_POST и даже присваиваются переменной $k в сообщении которое выскакивает при клике все работает, если нажимаю на первую строку в которой значение id=1 то при выполнении цикла в сообщении ответ 'gusto' если на вторую строку в которой id=2 то выскакивает сообщение 'pusto' но если я по ссылке перехожу на эту страницу то результат выполнения цикла 'no!' т.е переменная пустая, вопрос, как сделать что бы переходя по сслыке переменная сохраняла то значение которое передает этот скрипт

$(function () {

     $('table#tab1 tbody tr').click(function(){
    var text = $(this).attr('id');
         $.post( './123.php', {text:text},  function(ok){
     alert(ok);
     });
    });
});


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

$(function () {

     $('table#tab1 tbody tr').click(function(){
    var text = $(this).attr('id');
         $.post( './123.php', {text:text},  function(ok){
     alert(ok);
     });
    });
});


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

danik.js 27.10.2013 09:52

А теперь объясни: зачем ты делаешь асинхронный запрос, передавая id строки, если следующее твое действие - переход на другую страницу? Почему бы просто не передавать id прям при переходе? Переход - это GET-запрос, через который можно передать данные.

Вообще же, меня уже напрягает писать в пустоту, будто пишешь стенке, ни ответа не привета. Вот, например:
Цитата:

Сообщение от danik.js
Страница обновилась? А зачем тогда делать асинхронный запрос? И что должно дать обновление страницы? Отображается другой контент? Тогда это не $.post, а отправка формы или просто редирект.

Втопку короче этот топик..


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