получение 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? :help: |
Цитата:
Получай так: $dat = isset($_POST['dat']) ? $_POST['dat'] : 'почему-то не передали dat'; |
Цитата:
|
Цитата:
$dat = isset($_POST['dat']) ? $_POST['dat'] : 'почему-то не передали dat'; echo $dat; Также открой вкладку сеть в отладчике браузера и наблюдай за запросом. |
в общем задача такая переменная $dat это параметр запроса к базе данных по которому будет загружаться определенная строка соответствующая номеру строки в БД т.е
select * from client where uid='.$dat.' номер строки который jquery показывает в сообщении при клике на строку в таблице в браузере, соответствует уникальному id клиента uid. <tr id='.$row['uid'].'> т.е нужно что бы этот номер который jquery определил при клике на строку, передавался в переменную php $dat и потом в запросе участвовал как параметр для загрузки данных из БД, вот... |
а можно как-нибудь по другому реализовать эту задачу в целом, т.е при клике на строку получить ее id и эти данные передать в php переменную?
|
Самое простое и подходящее решение:
Повесить обработчик клика на все tr. По клику получать id и отправлять post-запросом. Если на сайте подключена либа jquery то это делается через click() и $.post() соответственно. Чем не устраивает это решение? |
Цитата:
Ну или если ищешь способ чуть по-проще, можешь например слать переменную через веб-сокет ну или придумать еще какой изврат. Ты поставил себе цель усложнить решение задачи, верно? |
Цитата:
и тд на сколько сил хватит в общем, почему не сделать сперва ведь это было бы логично, просто сейчас поджимает время и нужно решить эту задачу любым способом, но понимания практически ноль, я думаю что знаю за что отвечает каждая строка кода но не уверен правильно ли я понимаю принцип работы во первых, во вторых не понимаю почему не получается, либо все что вы говорите я понимаю не правильно соответственно делаю что попало, по моему мнению должно быть что то типо такого: "загрузилась страница -> пользователь кликнул на строку -> произошло событие jquery -> определилась строка на которое произошло событие -> id строки записывается в переменную -> данные переменной записываются в переменную на php -> данные переменной которые передавались из jquery сохранились в переменной php -> страница обнавилась переменная php имеет значение id строки на которую кликнул пользователь" поправьте если не так, но как реализовать этот алгоритм я не знаю, тот который я предложил не работает, почему я тоже не знаю, может быть потому что каким то образом нужно обновить страницу, т.к данные передаются после того как все переменные на php уже загружены и jquery посылает эти данные а в php они не сохраняются, может быть это или нет? |
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 13:22. |