@Misha5
профессиональный бомж

Как сохранить динамически созданный элемент в базу данных и выводить на html-страницу?

У меня на странице несколько iframe-ов с заданными ссылками на сторонние сайты.
Я предусмотрел динамическое создание новых фреймов пользователем.
Он вводит уникальное имя фрейма и ссылку, которая будет вставляться в атрибут src:
<iframe src="users_link" id="users_id"></iframe>
Добавление блока на страницу происходит через JQuery. После перезагрузки страницы блок исчезает (так не должно быть).

Моя цель сейчас, сделать так, чтобы созданные пользователем фреймы оставались видимыми и после перезагрузки, а данные (ссылка или frameIP и frameID) сохранялись в бд.

Проблема в том, что при загрузке страницы эти элементы еще не созданы и в DOM-дереве их нет.

Я написал простую функцию для сохранения нового фрейма:
function save_iframe(frameId, frameIP){
		$url = 'http://'+frameIP;
		$.post("iframe_save.php", {url: $url, frameID: frameId}).done(function(data){
			console.log(data);
		});
	}

http нужен т.к. я сохраняю не ссылку на конкретный сайт, а локальный ip-адрес на котором находится нужная мне информация.

Функция ссылается на файл iframe_save.php:
<?php
	//connection settings 
	$servername = "server";
	$username = "user";
	$password = "pass";
	$database = "db";

	$url = $_POST['url'];
	$frameID = $_POST['frameID'];

	//------------------

	//connection--------------------------
	$connect = mysqli_connect($servername, $username, $password, $database);
	// Проверяем соединение
	if (!$connect) {
		die("Не удалось подклюючиться к MySQL: " . mysqli_connect_error());
	}
	echo "Соединение установленно. ";
	//---------------------------------

	//Query----------------------------------------------
	$sql = "INSERT INTO `frames` (`url`, `frameID`) VALUES ('". $url ."', '". $frameID."')";
	if (mysqli_query($connect, $sql)) {
		echo "Новая запись добавлена в бд. ";
	} else {
		echo "Error: " . $sql . "<br>" . mysqli_error($connect);
	}
	//----------------------------------------------------

	//Closing connection
	mysqli_close($connect);
?>


Данные успешно добавляются в db, но при перезагрузке сам блок iframe исчезает.
Вопрос, как закинуть в него сохраненные данные и сделать частью DOM?
  • Вопрос задан
  • 228 просмотров
Пригласить эксперта
Ответы на вопрос 1
zkrvndm
@zkrvndm
Архитектор решений
После загрузки страницы AJAX-ом стучитесь на сервер и забираете массив ссылок из базы данных. Далее, полученный массив ссылок обходите циклом и вставляете на страницу в виде фреймов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы