Jump to content
  • 0

ссылка на строку в таблице + отправка формы


Payalnik610
 Share

Question

 Столкнулся с новой проблемой. Создаю краткую таблицу учета каких-либо объектов, строк в таблице около 80. С помощью Java нашел скрипт как сделать ссылку на всю строку в таблице, и на каждую строку в отдельности: 

<tr class=\"tr-red\"  onclick=\"window.location.href='http://www.yandex.ru/'; return false\" title=\"\">

Но конечная задача - при нажатии на строку в таблице использовался элемент Submit и отправлял GETom номер строки в таблице. 

<tr class=\"tr-red\" onclick=\"document.getElementById('get').submit()\" ; return false\" title=\"\">

у меня получается так - при нажатии на любую строку отправляются переменные со всех строк, а нужна только одна... 

 

Думаю реализация должна быть элементарная.

 

Может просто как то нужно разделить? на каждую строку свою форму прописать?

Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0

Предположим, что № строки у вас идёт 1 столбцом. На вскидку приходит на ум что то вроде:

var myValue;$('.tr-red').click( function() {  myValue = $(this).first().html();  var http = new XMLHttpRequest();            http.open("POST", "saveResults.php", true);            http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");            http.send("myValue=" + myValue );            http.onreadystatechange = function () {                if (http.readyState == 4 && http.status == 200) {                   alert("Результаты сохранены\n", "\n", "success");                }            }            http.onerror = function () {                alert('Извините, данные не были переданы');            }});

Ну и в saveResults.php

$myValue = $_POST['myValue'];

Возможно где то в синтаксисе накосячил :blush:

Link to comment
Share on other sites

  • 0

а правильно ли будет на каждую строку - свою форму с "сабмитом"? 

<form action="obpage.php" method="get" id="get2"><tr class="tr-red" id="tr" onclick="document.getElementById('get2').submit()" ; return false" title="Нажмите на строку таблицы для отображения подробностей по объекту"><input type="hidden" name="id_ob" value="2"/></form><td>2</td><td>52</td><td></td><td></td><td>2011-11-11</td><td>2013-11-11</td><td></td><td>0</td><td>671:31</td></tr></a>
Link to comment
Share on other sites

  • 0

Можно конечно. Но по моему это не рационально. А если 1000 строк будет? Покажите, как вы саму таблицу формируете. Тогда задача понятнее будет.

Edited by jdk
Link to comment
Share on other sites

  • 0
Как то так:

echo "<table class=\"table-t3\">";
echo "<tr><td>№ п.п.</td><td>№ компл. </td><td> № <br>RUS: </td><td> № </td><td>Дата начала гарантии</td><td>Дата завершения гарантии</td><td>Место</br>дислокации</td><td>Количество<br> отказов</td><td></td></tr>";


$resultat = mysql_query("SELECT `num_hel`.`id_hel`, `num_hel`.`id_knei`, `num_hel`.`num_hel_ru`, `num_hel`.`num_hel_in`, `num_hel`.`date_begin`, `num_hel`.`date_end`, `num_hel`.`narabotka`, `placehel`.`nameplace_hel_rus`, `placehel`.`nameplace_hel_ind` FROM `num_hel` JOIN `placehel` WHERE `num_hel`.`place_hel`=`placehel`.`place_hel` AND type_contract = '1' ORDER BY `id_hel` " , $link);
$array = mysql_fetch_array($resultat);

do
{
// вычисляем количество отказов по текущему объекту
$numhel = $array['id_hel'];
$kol = mysql_query("SELECT COUNT(1) FROM fail_test WHERE id_hel = $numhel ", $link);
$kolotk = mysql_fetch_array($kol);
//раскрашивам строки по гарантии
$date_end = $array['date_end'] ;

echo "<form action=\"obpage.php\" method=\"get\" id=\"get".$array['id_hel']."\">";
if (strtotime($date_end) >= strtotime($date_now) ) echo "<tr class=\"tr-green\" id=\"tr\" onclick=\"document.getElementById('get".$array['id_hel']."').submit()\" ; return false\" title=\"Нажмите на строку таблицы для отображения подробностей по объекту\">\n ";
else {

echo "<tr class=\"tr-red\" id=\"tr\" onclick=\"document.getElementById('get".$array['id_hel']."').submit()\" ; return false\" title=\"Нажмите на строку таблицы для отображения подробностей по обекту\">\n";}
echo "<input type=\"hidden\" name=\"id_ob\" value=\"".$array['id_hel']."\"/></form>";

//задаем параметры вывода переменных в таблице
echo "<td>".$array['id_hel']."</td><td>".$array['id_knei']."</td><td>".$array['num_hel_ru']."</td><td>".$array['num_hel_in']."</td><td>".$array['date_begin']."</td><td>".$array['date_end']."</td><td>".$array['nameplace_hel_rus']."(".$array['nameplace_hel_ind'].")</td><td>".$kolotk[0]."</td><td>".$array['narabotka']."</td></tr></a>\n";
}

while($array = mysql_fetch_array($resultat));

echo "</table>";



Link to comment
Share on other sites

  • 0

 

Id ведь у каждой записи уникальный? Сделайте номер строки ссылкой, а потом $_Get'ом берите

<a href="saveResults.php?<?= $array['id_hel']; ?> ">№ строки</a>

А можно узнать поподробнее как реализовать этот способ...

Link to comment
Share on other sites

  • 0

Я недавно занимался реализацией похожей задачи, собственно что делал: Человек на сайте проходит тестирование, а результаты записываем в бд (таблица results). Назначаю id автоинкрементом, идёт первым(индекс 0). Потом в админке есть возможность просмотра таблицы с результатами и их удаление.

<?php$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);if ($mysqli->connect_errno){    printf("Не удалось подключиться: %s\n", $mysqli->connect_error);    exit();}$query  = "SELECT * FROM Results";$result = $mysqli->query($query);?>

и построчно вывожу каждую запись, а в конце ссылка для передачи id, который будем удалять.

<?php                while($row = $result->fetch_array(MYSQLI_NUM)):                ?>                <tr>                    <td><?= $row[0]; ?></td>                    ...                    <td><?= $row[7]; ?></td>                    <td><a href="deleteStudentResult.php?test=<?= $row[0]; ?>" class="removeRes">X</a></td>                </tr>                <?php                endwhile;                ?>

а в скрипте, который будет удалять что то вроде:

$testId = $_GET['test'];$query  = "DELETE FROM Results WHERE id='$testId'";$mysqli->query($query);
Link to comment
Share on other sites

  • 0

 

Id ведь у каждой записи уникальный? Сделайте номер строки ссылкой, а потом $_Get'ом берите

<a href="saveResults.php?<?= $array['id_hel']; ?> ">№ строки</a>

а как сделать чтобы вся строка ссылкой была при данном способе?

echo "<tr class=\"tr-red\" id=\"tr\"  title=\"Нажмите на строку таблицы для отображения подробностей по обекту\">\n";}echo "<td><a href=\"obpage.php?id_ob=".$array['id_hel']."\" >".$num4."</a></td><td>".$array['id_knei']."</td><td>".$array['num_hel_ru']."</td><td>".$array['num_hel_in']."</td><td>".$array['date_begin']."</td><td>".$array['date_end']."</td><td>".$array['nameplace_hel_rus']."(".$array['nameplace_hel_ind'].")</td><td>".$kolotk[0]."</td><td>".$array['narabotka']."</td></tr>\n";}
Edited by Payalnik610
Link to comment
Share on other sites

  • 0

ребята ну помогите чем можете :)

Все понял в чем и как сильно туплю

 

кому интересен ответ:

<tr class="tr-red" id="tr" onclick="window.location.href='/obpage.php?id_ob=".$array['id']."'; return false" title="">

выделенная строка страница по нажатию на любой столбец отправляет по указанной ссылке.

 

Всем спасибо!!! :yahoo:

Edited by Payalnik610
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy