У меня есть несколько строк таблицы внутри цикла while, все строки - это данные из моей базы данных, каждая строка имеет кнопку отправки. Я хочу опубликовать определенные данные на другой странице, например, если я нажму submit_3, я хочу опубликовать все данные строки 3 на otherpage.php, но, как я пробовал, всегда используется последняя строка.
Например, у меня есть 25 строк, затем я отправляю кнопку 3, и она будет публиковать всю информацию из строки 25.
print '<form method = "POST" action = "edit.php" name = "action">';
//print '<input type = "hidden" value = "'.$imId.'" name = "imId">';
print '<div class = "tbl-content">';
print '<table cellpadding = "0" cellspacing = "0" border = "0">';
print '<tbody>';
$querySelect = "select hersteller, name, kaufDatum, category, ablaufDatum, imID, details from inventoryManager ";
$querySelect .= $orderBy;
error_log( "SQL2:" . $querySelect . "<br>", 3, "C:/Control/log/debug/dp.html" );
$resultSelect = db_query( [ $querySelect ] );
while ( ( $row = mysql_fetch_array( $resultSelect ) ) ) {
$manufacturer = $row[ hersteller ];
$name = $row[ name ];
$buyDate = $row[ kaufDatum ];
$selectCategory = $row[ category ];
$expireDate = $row[ ablaufDatum ];
$imId = $row[ imID ];
$details = $row[ details ];
print '<tr>';
print "<td>$manufacturer</td>";
print "<td>$name</td>";
print "<td>$buyDate</td>";
print "<td>$selectCategory</td>";
print "<td>$expireDate</td>";
//error_log("imIdCheck#1:".$imId."<br>",3,"C:/Control/log/debug/dp.html");
print '<td><input type = "submit" name = "edit_' . $imId . '" value = "Bearbeiten" class = "button2 button3"></td>';
print '</tr>';
}
print '</tbody>';
print '</table>';
print '</div>';
print '</form>';
На другой странице я выбираю все данные с помощью $imId, но каждый раз, когда я нажимаю кнопку отправки, даже если это submit_1, я получаю последний возможный шаг. Что я должен включить, чтобы он отправлял данные выбранной строки?
Обновлено: часть HTML-кода после реализации предложения иметь кнопку:
<form method = "POST" action = "edit.php" name = "action">
<div class = "tbl-content">
<table cellpadding = "0" cellspacing = "0" border = "0">
<tbody>
<tr>
<td>test</td>
<td>TestName</td>
<td>2019-03-23</td>
<td></td>
<td>2019-03-22</td>
<input type = "hidden" value = "2" name = "imId">
<td>
<button type = "submit" name = "id" value = "2" class = "button2 button3">Bearbeiten</button>
</td>
</tr>
<tr>
<td>TestHersteller</td>
<td>TestName</td>
<td>2019-03-31</td>
<td></td>
<td>2019-03-31</td>
<input type = "hidden" value = "3" name = "imId">
<td>
<button type = "submit" name = "id" value = "3" class = "button2 button3">Bearbeiten</button>
Если у вас есть ОДНА форма, то мое предложение о том, чтобы именованная кнопка отправки отправляла идентификатор, будет работать, если вы удалите скрытое поле. Убедитесь, что вы пишете imID так, как вы читаете, и записываете его в php, и щелчок по каждой кнопке отправит идентификатор в значении нажатой кнопки на сервер.
<button type = "submit" name = "imID" value = "'.$imId.'" class = "button2 button3">Bearbeiten/button>
Так:
<form method = "POST" action = "edit.php" name = "action">
<div class = "tbl-content">
<table cellpadding = "0" cellspacing = "0" border = "0">
<tbody>
<tr>
<td>test</td>
<td>TestName</td>
<td>2019-03-23</td>
<td></td>
<td>2019-03-22</td>
<td>
<button type = "submit" name = "imID" value = "2" class = "button2 button3">Bearbeiten</button></td>
</tr>
<tr>
<td>TestHersteller</td>
<td>TestName</td>
<td>2019-03-31</td>
<td></td>
<td>2019-03-31</td>
<td>
<button type = "submit" name = "imID" value = "3" class = "button2 button3">Bearbeiten</button>
....
Комментарии не для расширенного обсуждения; этот разговор был перешел в чат.