2011-03-16 64 views
1

這是處理...我需要做一個AJAX保存腳本。我有一個建立在PHP上的整個系統,每個動作都需要刷新......我試圖通過使用AJAX來最小化刷新計數......我似乎無法找到一種方式來發送所見即所得的編輯器輸出而不會丟失PHP腳本...AJAX POST的Javascript數組發送

if (window.XMLHttpRequest){ 
    xmlhttp=new XMLHttpRequest(); 
} 
else{ 
    xmlhttp=new ActiveXObject('Microsoft.XMLHTTP'); 
} 
function save(){ 
    xmlhttp.open('POST','action.php',true); 
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    xmlhttp.setRequestHeader("Content-length", document.getElementById('output').value.length); 
    xmlhttp.setRequestHeader("Connection", "close"); 
    xmlhttp.send(document.getElementById('output').value); 
    xmlhttp.onreadystatechange = function(){ 
     if(xmlhttp.readyState == 4 && xmlhttp.status==200){ 
      $('#ajaxresult').css('opacity', 0.1); 
      $('#ajaxresult').stopAll().pause(1000).fadeTo(400,1); 
      $('#ajaxresult').stopAll().pause(3000).fadeTo(400,0, function(){$(this).hide();}); 
      document.getElementById('ajaxresult').innerHTML=xmlhttp.responseText; 
     } 
    } 
} 

雖然這個腳本工作正常,我似乎無法找到什麼樣的陣列來給發送選項的方式...什麼是語法或者是有什麼我不不知道?

順便說一句,我在JS初學者...

回答

1

我會考慮使用jQuery和它的Ajax庫:

http://api.jquery.com/jQuery.ajax/

而不是做一切你根本就:

$.post({url: 'action.php',data: output,success: function() { /* do something here */ }}); 
+0

的問題是數據字段... 如何製備POST陣列,使得ID不鬆動數據... 例如,如果我想要寫以下變量a = 1且B = 33和c ='¡aize kautkādaunvēlsazinžuķīļņšģīŗ'... 現在a和b將會是完美的,但是c會在某些時候被切斷,最有可能失去的只是šāēžķ等......我需要它包含所有可能的字符,不要忽略它們,因爲它現在正在做... – user663184 2011-03-18 11:16:02

+0

我會推薦以及使用jQuery或其他Ajax庫。 – Sebastian 2013-07-24 08:10:10

1

在像下面的JavaScript代碼創建自定義參數

var jspNameParam = "content="+escape(document.getElementById('output').value); 
    function myFunction() { 
     if (xmlhttp) { 
      xmlhttp.onreadystatechange = function() { 
       if (xmlhttp.readyState == 4) { 
       /* want to accsess some data written from action.php */ 
       } 
      };   
      xmlhttp.open("POST", "action.php", true); 
      xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
      xmlhttp.send(jspNameParam); 
     } 
    } 

現在在action.php中,您將獲得整個內容,其參數名稱爲內容