Я искал везде, но каждое решение, которое я нашел, до сих пор не работало для меня.
Я создаю приложение для веб-сайта, где люди могут создавать свои собственные слайд-шоу. Когда пользователь нажимает кнопку «Сохранить», я хочу, чтобы текущий DOM был сохранен в виде файла HTML на моем веб-сервере.
Первый метод, который я попробовал, использует Ajax, но ничего не возвращается:
AJAX
function chk() {
var elHtml = document.getElementById('dropzone').innerHTML;
console.log("inside chk");
$.ajax({
type: "POST",
url: 'https://www.tap-plus.org/wp-content/themes/Avada/softwarefiles/savefile.php',
dataType: 'json',
data: {functionname: 'write_to_server', arguments: [elHtml] },
cache:false,
success: function (obj) {
if( !('error' in obj) ) {
$('#msg').html(obj);
}
else {
console.log(obj.error);
}
}
});
return false;
}
savefile. php
function write_to_server($html_code) {
$html_string = $_POST['arguments'][0];
var_dump($html_string);
echo 'test';
}
html <input type="submit" id="saving" class="btn btn-primary pull-right" value="Save2" onclick="return chk()"/>
Приведенный выше метод ничего не возвращает. Второй метод, который я попробовал, был выбор текущего DOMDocument с loadHTMLFile
текущего URL сайта. Возвращено значение null.
DOMDocument
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTMLFile('https://https://www.tap-plus.org/tapplus-software/');
var_dump($dom);
результат:
object(DOMDocument)#3045 (35) { ["doctype"]=> NULL ["implementation"]=> string(22) "(object value omitted)" ["documentElement"]=> NULL ["actualEncoding"]=> NULL ["encoding"]=> NULL ["xmlEncoding"]=> NULL
Кроме того, я хочу выполнить sh это без страницы перезагрузка, если это возможно. В идеале, если кто-то нажмет кнопку «Сохранить» в слайд-шоу, над которым он работает, он не захочет, чтобы страница внезапно перезагрузилась. Я не уверен, что я делаю не так или какие дальнейшие шаги будут, чтобы решить эту проблему. Заранее спасибо.