Удалить строку, которая является комбинацией двух таблиц, используя кнопку - PullRequest
0 голосов
/ 16 января 2020

В основном, что говорит название. Результат сценария отображения таблицы и запроса sql создает таблицу, которая объединяет две таблицы с сервера SQL на странице html. Нам было поручено создать кнопку с именем «Удалить» рядом с каждой отображаемой строкой. Проблема в том, что в книгах говорится, что другие пользователи используют href с $ row [ID], который является только одним параметром. Мне нужно «извлечь» два параметра для передачи для удаления. php, чтобы идентифицировать строки в обеих таблицах. Тогда есть вторая опция "POST" if (isset ($ _ POST)) ... Но это также может извлечь только одно значение. Может, кто-нибудь передаст некоторые знания о том, как «определить» значения в строке, где была нажата кнопка, или как-то передать две переменные для удаления. php или как заставить метод POST работать, передавая два параметра. Как я уже сказал, я не могу хранить идентификаторы в значении, которое должно содержать «delete»

echo('<table border="2">');
echo('<tr><td>"Název Nemocnice"');
echo('</td><td>"Adresa Nemocnice"');
echo('</td><td>"Název pojišťovny"');
echo('</td><td>"Kód pojišťovny"');
echo('</td></tr>');
foreach ($result as $r){
echo('<tr><td>' . htmlspecialchars($r['nazevNemocnice']));
echo('</td><td>' . htmlspecialchars($r['adresaNemocnice']));
echo('</td><td>' . htmlspecialchars($r['nazevPojistovny']));
echo('</td><td>' . htmlspecialchars($r['kodPojistovny']));
echo('</td><td><input type= "submit" name="deleteItem" value="Delete"');
echo('</td></tr>');
}
echo('</table>');  

После небольшого обновления я смог заставить его работать, но есть очень странная проблема. Он не передает целое значение.

                    foreach ($result as $r){
                        echo('<tr><td>' . htmlspecialchars($r['nazevNemocnice']));
                        echo('</td><td>' . htmlspecialchars($r['adresaNemocnice']));
                        echo('</td><td>' . htmlspecialchars($r['nazevPojistovny']));
                        echo('</td><td>' . htmlspecialchars($r['kodPojistovny']));
                        echo('</td><td>');
                        echo('<form method="post" action="delete.php">');
                        echo('<input type="hidden" name="id1" value='.htmlspecialchars($r['nazevNemocnice']).'>');
                        echo('<input type="hidden" name="id2" value='.htmlspecialchars($r['adresaNemocnice']).'>');
                        echo('<input type="hidden" name="id3" value='.htmlspecialchars($r['nazevPojistovny']).'>');
                        echo('<input type="hidden" name="id4" value='.htmlspecialchars($r['kodPojistovny']).'>');
                        echo('<input type= "submit" name="deleteItem" value="Delete">');
                        echo('</form>');
                        echo('</td></tr>');
                    }
                    echo('</table>'); 

На дисплее выводится «Больница А». Когда POST используется при отправке, значения, передаваемые на скрытых входах, «неполны», поэтому я получаю «Больницу», переведенную , Я попытался повторить его на странице удаления, и он печатает только первые слова.

Hospital A -> Hospital
Address A -> Address
Insurance A -> Insurance
0101 -> 0101

Знаете, что пошло не так?

Ответы [ 3 ]

1 голос
/ 16 января 2020

просто передайте оба tableId как скрытый параметр для удаления. php

echo('<tr><td><input type="hidden" name="tableOneID" value="'.$r['tableOneID'].'">' . htmlspecialchars($r['nazevNemocnice']));

echo('<tr><td><input type="hidden" name="tableTwoID" value="'.$r['tableTwoID'].'">' . htmlspecialchars($r['adresaNemocnice']));

примерно так, и это поможет вам извлечь tableOneID и tableTwoID каждой строки.

1 голос
/ 16 января 2020

Как правило, вы не хотите использовать HREF (который является запросом GET) для выполнения операций, которые не являются идемпотентными . (То есть, это приводит к изменению базы данных.) Вместо этого используйте отправку формы (которая является запросом POST.) Учитывая это, добавить несколько скрытых значений для идентификации нескольких строк просто.

<form method="post" action="...">
    <input type="hidden" name="id1" value="...">
    <input type="hidden" name="id2" value="...">
    <input type= "submit" name="deleteItem" value="Delete">
</form>
0 голосов
/ 16 января 2020

Вы можете использовать тег кнопки вместо тега ввода, если хотите передать другое значение, но сохранить метку.

<button type="submit" name="deleteItem" value="{$row[ID]}">Delete</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...