2017-02-11 5 views
0

После нескольких часов, пытаясь получить эту работу, я хочу спросить вас :)Ajax - сохранить значение яваскрипта для PHP

Так у меня есть PHP страницу, которая может отображать файлы с сервера. Теперь я могу редактировать файлы с плагином редактора. Textarea - это тег, где редактор получает визуализацию. Чтобы сохранить измененный текст в редакторе, у меня есть кнопка, которая получает innerHTML из окружающего pre-тега текста с помощью javascript. Теперь я хочу передать эту переменную через ajax в переменную php на сайте get.php, , поэтому я могу сохранить его локально и отправить его на сервер.

Проблема в том, что реакции нет, если я нажму кнопку «Сохранить». Я испытал много ответов от аналогичных функций АЯКС здесь, но ни один из них не дал мне ни одного реакции:/

PHP главный

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 


... 


echo "<textarea><pre id='textbox'> "; 
echo $ssh->exec($display); 
echo "</textarea></pre>"; 

echo '<input type="button" value="Save File" id="butt">'; 

echo "<script> 
var show = document.getElementById('textbox').innerHTML; 
$(document).ready(function() { 
$('#butt').click(function() { 

$.ajax({ 
    type: 'POST', 
    url: 'get.php', 
    data: {'variable': show}, 
    success: function(data){ 
     alert(data); 
} 
}); 
}); 
}); 
</script>"; 


... 

get.php

if (isset($_POST["variable"])){ 
$show =$_POST["variable"]; 
echo $show; 
} 

Edit:

Это рабочее состояние:

echo "<textarea id='textbox'><pre> "; 
echo $ssh->exec($display); 
echo "</pre></textarea>"; 

echo '<input type="button" value="Save File" id="butt">'; 

echo "<script> 
$(document).ready(function() { 
$('#butt').click(function() { 
var show = document.getElementById('textbox').value; 

$.ajax({ 
type: 'POST', 
url: 'get.php', 
data: {'variable': show}, 
success: function(data){ 
    alert(data); 
}, 
}); 
}); 
}); 
</script>"; 
+0

Можете ли вы подтвердить на вкладке в сети инструменты вашего устройства, что почтовый запрос вообще происходит? Если да, то какой код статуса? – Connum

+0

Кстати, вы отправляете строку ''show'' вместо содержимого переменной' show' в ваших данных сообщения. – Connum

+0

Событие запроса не отображается, если я нажму кнопку. –

ответ

-1

Я хотел бы предложить небольшие изменения, чтобы убедиться, что все работает как надо.

    • Я могу видеть, что перед тегом позади TEXTAREA закрывающий тег - попытаться изменить его
    • Попробуйте положить var show = document.getElementById('textbox').innerHTML; внутри функции ,, встык»
    • Тогда я вижу вашу проблему здесь data: {'variable': 'show')}, - вы отправляете «show» в виде строки - удалите кавычки, чтобы отправить его как переменную, которая будет отображаться как значение POST на сайте PHP.
+0

Thx, я сделал все, но все равно не было никакой реакции. :/Может ли быть, что ajax не любит быть эхо? –

+0

Поместите предупреждение (показать) внутри функции приклада, чтобы отобразить содержимое отображаемой переменной ... это хорошо для тестирования ... следующая вещь - щелкните правой кнопкой мыши на странице ... проверьте элемент - и перейдите на вкладку консоли - есть события, вызванные Javascript на вашей странице - возможно, есть некоторая ошибка –

+0

Или 'alert (« anything »)' в этом отношении, потому что, если содержимое переменной пуст, в зависимости от браузера сообщение предупреждения может не отображаться на все – Connum

-1

с этим должно работать:

$.ajax({ 
    type: 'POST', 
    url: 'get.php', 
    data: {variable: show)}, 
    success: function (data){ 
     alert(data); 
0

У вас ошибка в data: {'variable': show)} части. Это должно быть: data: {variable: show}. Также вы должны использовать средства разработки Firebug или Firefox для этих проблем. Намного легче понять, что случилось.

+0

Firebug больше не разрабатывается и имеет серьезные проблемы в последних версиях Firefox. Поэтому инструменты dev по умолчанию для любого браузера OP должны быть в порядке :) – Connum

Смежные вопросы