2017-02-11 50 views
0

后试图得到这个工作时间,我想问问你:)阿贾克斯 - 保存JavaScript值到PHP

所以我有一个PHP页面可以从服务器显示的文件。现在我可以用编辑器插件编辑 这些文件。 Textarea是编辑器呈现的标记。 要保存从编辑器中更改的文本,我有一个按钮,从JavaScript文本的周围预标签中获取innerHTML。 我现在想通过ajax将该变量传递给站点上的php变量get.php, 因此我可以将它保存在本地并将其发送到服务器。

问题是,没有任何反应,如果我点击“保存”按钮。我测试了很多从这里类似AJAX功能的答案,但他们都不给我一个反应:/

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; 
} 

编辑:

这是实际工作状态:

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;的,,对接”功能的内部
    • 然后我可以在这里看到你的问题数据:{'variable': 'show')}, - 您将'show'作为字符串发送 - 删除引号将其作为变量发送,该变量在PHP网站中显示为POST值。
+0

Thx,我做了一切,但仍然没有一个单一的反应。 :/它可能是阿贾克斯不喜欢被echo'd? –

+0

在对接功能中放置警报(显示)以显示show变量的内容......这对测试非常有用......接下来的事情是 - 右键点击页面...检查元素 - 然后进入控制台选项卡 - 在您的页面上有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版本中存在重大问题。所以任何浏览器OP使用的默认开发工具应该是好的:) – Connum