2017-02-11 52 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