Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.10.2013, 09:35
Интересующийся
Отправить личное сообщение для msscriin Посмотреть профиль Найти все сообщения от msscriin
 
Регистрация: 26.10.2013
Сообщений: 10

получение id строки и передача значения переменной php
таблица полученная из БД таким образом:

$query1 = 'select * from client';
$res=mysql_query($query1);
$fields = mysql_num_fields($res);
$i=0;
echo "<table id='tab1' border=2 width=100% height='80px'>";

echo "<thead><tr>";
 while ($i<$fields) {
	$name = mysql_field_name($res, $i);
	$len = mysql_field_len($res, $i);
	echo "<td> ".$name."</td>";
	$i++;
	}
 echo "</thead></tr>";
 echo "<tbody>";
 while ($row=mysql_fetch_array($res)){
    echo ('<tr id='.$row['uid'].'><td>'.$row['uid'].'</td><td>'.$row['Surname'].'</td><td>'.$row['Name'].'</td>
 	<td>'.$row['Otchestvo'].'</td><td>'.$row['tlf'].'</td><td>'.$row['street'].'</td><td>'.$row['home'].'</td>
 	<td>'.$row['kv'].'</td></tr>');
  }

 	echo "</tbody></table>";


из этой таблицы нужно получить id строки на которую кликнули мышкой, пробовал реализовать при помощи jquery вот так:

$(function () {

     $("table#tab1 tbody tr").click(function(){
    var title = $(this).attr("id");
    alert(title);
    $.post( 'index.php', {'dat':title}, function(ok){
     alert(ok);
       myWin= open("opn.php", "displayWindow",
    "width=400,height=300,status=no,toolbar=no,menubar=no");
     });

    });
});


при клике на строку появляется сообщение с нужным мне id и в приципе все прекрасно но проблема вот в чем:
alert(title);
в title определяется значение id строки на которую кликнули, судя по всплывающему окошку все работает, но передать значение переменной title в переменную $dat методом POST не получается, php пишет что переменная пуста, если конкретнее думаю что загвоздка вот здесь:

$.post( 'index.php', {'dat':title}, function(ok){
     alert(ok);


либо я совсем делаю не то, либо что то недоделываю, как это исправить? или как можно реализовать задачу получения данных ячейки на которую кликнули и потом передать эти данные в переменную php?
Ответить с цитированием
  #2 (permalink)  
Старый 26.10.2013, 10:37
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от msscriin
title в переменную $dat методом POST не получается
А с какой стати? Если только register_globals >> on ?
Получай так:
$dat = isset($_POST['dat']) ? $_POST['dat'] : 'почему-то не передали dat';
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 26.10.2013, 10:52
Интересующийся
Отправить личное сообщение для msscriin Посмотреть профиль Найти все сообщения от msscriin
 
Регистрация: 26.10.2013
Сообщений: 10

Сообщение от danik.js Посмотреть сообщение
А с какой стати? Если только register_globals >> on ?
Получай так:
$dat = isset($_POST['dat']) ? $_POST['dat'] : 'почему-то не передали dat';
не работает, переменной по прежнему нет либо я туплю и делаю не то что надо
Ответить с цитированием
  #4 (permalink)  
Старый 26.10.2013, 12:15
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от msscriin
не работает
Что именно не работает? Если хочешь вернуть значение обратно браузеру, так и пиши:
$dat = isset($_POST['dat']) ? $_POST['dat'] : 'почему-то не передали dat';
echo $dat;


Также открой вкладку сеть в отладчике браузера и наблюдай за запросом.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 26.10.2013, 12:26
Интересующийся
Отправить личное сообщение для msscriin Посмотреть профиль Найти все сообщения от msscriin
 
Регистрация: 26.10.2013
Сообщений: 10

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

select * from client where uid='.$dat.'

номер строки который jquery показывает в сообщении при клике на строку в таблице в браузере, соответствует уникальному id клиента uid.

<tr id='.$row['uid'].'>

т.е нужно что бы этот номер который jquery определил при клике на строку, передавался в переменную php $dat и потом в запросе участвовал как параметр для загрузки данных из БД, вот...
Ответить с цитированием
  #6 (permalink)  
Старый 26.10.2013, 13:45
Интересующийся
Отправить личное сообщение для msscriin Посмотреть профиль Найти все сообщения от msscriin
 
Регистрация: 26.10.2013
Сообщений: 10

а можно как-нибудь по другому реализовать эту задачу в целом, т.е при клике на строку получить ее id и эти данные передать в php переменную?
Ответить с цитированием
  #7 (permalink)  
Старый 26.10.2013, 14:15
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Самое простое и подходящее решение:
Повесить обработчик клика на все tr. По клику получать id и отправлять post-запросом. Если на сайте подключена либа jquery то это делается через click() и $.post() соответственно. Чем не устраивает это решение?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 26.10.2013, 14:17
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от msscriin
а можно как-нибудь по другому реализовать эту задачу в целом
Можно например пересылать серверу координаты клика и размеры окна браузера, а на сервере моделировать страницу и по координатам находить id строки. Как тебе такой вариант?

Ну или если ищешь способ чуть по-проще, можешь например слать переменную через веб-сокет ну или придумать еще какой изврат. Ты поставил себе цель усложнить решение задачи, верно?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #9 (permalink)  
Старый 26.10.2013, 14:34
Интересующийся
Отправить личное сообщение для msscriin Посмотреть профиль Найти все сообщения от msscriin
 
Регистрация: 26.10.2013
Сообщений: 10

Сообщение от danik.js Посмотреть сообщение
Самое простое и подходящее решение:
Повесить обработчик клика на все tr. По клику получать id и отправлять post-запросом. Если на сайте подключена либа jquery то это делается через click() и $.post() соответственно. Чем не устраивает это решение?
на самом деле я рад любому решению только бы работало) усложнить решение задачи нееет, это явно не то что мне нужно на данный момент, в будущем я планирую заняться полным изучением и javascript и jquery и php
и тд на сколько сил хватит в общем, почему не сделать сперва ведь это было бы логично, просто сейчас поджимает время и нужно решить эту задачу любым способом, но понимания практически ноль, я думаю что знаю за что отвечает каждая строка кода но не уверен правильно ли я понимаю принцип работы во первых, во вторых не понимаю почему не получается, либо все что вы говорите я понимаю не правильно соответственно делаю что попало, по моему мнению должно быть что то типо такого:

"загрузилась страница -> пользователь кликнул на строку -> произошло событие jquery -> определилась строка на которое произошло событие -> id строки записывается в переменную -> данные переменной записываются в переменную на php -> данные переменной которые передавались из jquery сохранились в переменной php -> страница обнавилась переменная php имеет значение id строки на которую кликнул пользователь"

поправьте если не так, но как реализовать этот алгоритм я не знаю, тот который я предложил не работает, почему я тоже не знаю, может быть потому что каким то образом нужно обновить страницу, т.к данные передаются после того как все переменные на php уже загружены и jquery посылает эти данные а в php они не сохраняются, может быть это или нет?
Ответить с цитированием
  #10 (permalink)  
Старый 26.10.2013, 15:00
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от msscriin
данные переменной записываются в переменную на php
Не совсем так. Значение переменной передается на сервер через POST или GET запрос. А скрипт на сервере получает его и что-то с ним делает.
Сообщение от msscriin
страница обнавилась переменная php имеет значение id строки на которую кликнул пользователь
Страница обновилась? А зачем тогда делать асинхронный запрос? И что должно дать обновление страницы? Отображается другой контент? Тогда это не $.post, а отправка формы или просто редирект.
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение значения переменной внутри обработчика события jQuery Mbenga Общие вопросы Javascript 2 01.07.2013 10:57
Передача переменной из JS в PHP и обратно Gregorian Общие вопросы Javascript 5 11.09.2012 16:12
Получение значения переменной из строки. blax Общие вопросы Javascript 1 20.09.2011 22:23
AJAX обращение к файлу php и получение значения zeraid jQuery 8 28.03.2011 14:46
передача из php в javascript многострочной переменной smollvrn Общие вопросы Javascript 12 14.11.2010 20:38