Я пытаюсь решить проблему.В настоящее время пользователь может создавать контент в форме, которая после отправки совершает Ajax-вызов.Когда выполняется вызов, он создает запись MySQL для фактического содержимого, получает идентификатор этой записи содержимого, а затем создает запись для «панели», в которой размещается это содержимое (связанное с идентификатором страницы, типом панели и содержимым в целом).).
Это работает отлично, но если они пытаются отредактировать контент в форме и заявить, что он просто создает другую запись.
В приведенном ниже JS / AJAX передаются тип_панели, идентификатор страницы исодержимое как скрытые поля:
<script type="text/javascript">
$("#leftHalfForm").submit(function(e){
var string = $('#leftHalfForm').serialize() + '&page_id=' + page_id;
console.log(string);
// AJAX Code To Submit Form.
$.ajax({
type: "POST",
url: "addPanel.php",
data: string,
cache: false,
success: function(response){
}
});
return false;
});
</script>
Таким образом, когда отправляется «форма», ajax вызывает этот скрипт ниже PHP, который вставляет содержимое, получает идентификатор этой вставки содержимого, а затем создает запись панели, содержащуютип панели, идентификатор страницы и идентификатор содержимого:
$content = $_POST['page_content'];
$addContent = "
INSERT INTO content(content)
VALUES('$content');
";
if ($mysqlConn->query($addContent) === TRUE) {
$cont_id = $mysqlConn->insert_id;
$data['last_insert_id'] = $cont_id;
echo json_encode($data);
} else {
echo "Error: " . $addContent . "<br>" . $mysqlConn->error;
}
$panelID = $_POST['panel_type'];
$pageID = $_POST['page_id'];
$addPanel = "
INSERT INTO panels(panel_type_id, page_id, cont_id)
VALUES ('$panelID', '$pageID', '$cont_id');
";
if ($mysqlConn->query($addPanel) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $addPanel . "<br>" . $mysqlConn->error;
}
Это прекрасно работает на новой странице с пустой панелью.Но если они отправят эту форму (создание записи панели и записи содержимого), затем нажмите на нее, чтобы что-то отредактировать, а затем при вызове AJAX я бы хотел проверить и, по сути, сказать: «Если запись для этой панели существуетвведите на этой странице обновленную запись содержимого, связанную с ней. "
Пример:
Если пользователь щелкает форму и создает текст содержимого" Это текстовое содержимое ".Скажем, pageID этой текущей страницы - 123, а тип панели - 2. Эта запись создана:
Таблица содержимого
ID | Content
------------------------------
52 | This is some text content.
Таблица панели
panel_type_id | page_id | cont_id
-------------------------------------
2 123 52
Сейчасесли они редактируют это и нажимают «отправить», я уже передаю panel_type_id и page_id, поэтому все, что я хочу сделать, это увидеть, что panel_type_id из 2 и page_id из 123 уже существуют, поэтому мне просто нужно обновить запись контента, связанную с ним (контентID 52).
Кажется, что это должно быть достаточно просто, но я не уверен, как сохранить текущие функциональные возможности для новых панелей, в то же время приспосабливая редактирование / обновление того, что уже есть.