onclick для div нужно удалить запись базы данных mysql - PullRequest
0 голосов
/ 04 марта 2012

Стандарты кодирования на месте означают, что у меня нет возможности использовать ajax для этого.

Пользователь вошел в систему, и СЕССИЯ отслеживает его / ее. При входе в систему, их список древние человеческие артефакты извлекаются (на стороне сервера) из mysql, и их отображает наследник в строках div - каждый div это строка с одним артефактом - вот две строки div:

     'bronze-age tool' 'egypt'   'photo: tool3_found_1964-Feb_dig.jpg'
     'decorated bowl'   'Shang Dynasty/China'  'photo: shang-bowl.png'

Список этих артефактов, которые ранее загружал пользователь, отображается в heredoc. набор строк div.

Список div не является формой. Я мог бы сделать каждую строку (каждый артефакт) формой для решения моя проблема но кажется клуджой. Пользователь должен иметь возможность щелкнуть по элементу div, чтобы выбрать и выделите этот артефакт в строке div (и выберите / выделите часть, которую я уже получил работает, это все на стороне клиента, конечно, JavaScript).

Кнопка «удалить» над строками div затем изменяется с отключенной на включенную.

Когда нажата кнопка «Удалить», мне нужно попасть на сервер, передать ему выбранный артефакт, и сервер уже знает вошедшего в систему пользователя (они находятся на СЕССИИ), а затем сервер должен удалите этот артефакт, и когда страница перезагрузится, BAM строка этого артефакта теперь исчезла из приведенного выше список артефактов divs.

Если я сделаю каждый артефакт div-строки формой, в моем обработчике onclick для этой div-строки я смогу программно отправьте () эту форму строки строки (используя javascript), чтобы удалить этот артефакт, и это сработает.

Но создание каждого div своей стилистической формы - отстой imo.

Я мог бы сделать весь набор элементов Hredoc формой. Но потом, при условии, поскольку удаляется только одна строка div, серверу будет предоставлен потенциально большой набор div, только один из которых является «выбранным» div, который нужно удалить, и должен будет пройти через массив POST и как-то найти «выбранный» div из большого набора div в массиве POST.

По крайней мере, если каждая строка div выбранного артефакта была формой сама по себе, массив POST будет содержать только одно содержимое div - выбранный div, который пользователь хочет удалить - а затем сервер сразу знает, какую запись MySQL удалить (выбранный div артефакт) без необходимости проходить потенциально огромную форму Div, только один из удаляемый divs.

Кроме того, «весь heredoc является формой» и «каждый div является формой и программным представлением () удаляет выбранный div '- есть ли лучший способ сделать это, я не вижу?

1 Ответ

1 голос
/ 04 марта 2012

Создайте форму вне вашего списка со скрытым полем ввода для идентификатора артефакта. В появившейся кнопке удаления обновите скрытое поле и отправьте форму.

Форма:

<form id="delete_artifact_form" action="delete_action" method="post">
    <input type="hidden" name="artifact_id" id="delete_artifact_id" />
</form>

Функция удаления:

function delete_artifact( id ) {
    document.getElementById( "delete_artifact_id" ).value = id;
    document.getElementById( "delete_artifact_form" ).submit( );
}
...