AJAX POST 发送的 Javascript 数组

Posted

技术标签:

【中文标题】AJAX POST 发送的 Javascript 数组【英文标题】:Javascript array for AJAX POST send 【发布时间】:2011-07-16 21:38:09 【问题描述】:

这是交易...我需要制作一个 AJAX 保存脚本。我有一个基于 php 构建的整个系统,每个操作都需要刷新......我正在尝试通过使用 AJAX 来最小化刷新次数......我似乎无法找到一种方法来无损发送 WYSIWYG 编辑器输出到 PHP 脚本...

  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】:

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 中,您将获得参数名称为 content 的全部内容。

【讨论】:

【参考方案2】:

我会考虑使用 jQuery 和它的 Ajax 库:

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

而不是做所有你想做的事:

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

【讨论】:

问题是数据字段...我如何准备 POST 数组以便 id 不会丢失数据...例如如果我想编写以下变量 a=1 和 b =33 和 c='šaize kaut kāda un vēl sazin žuķīļņšģīŗ'... 现在 a 和 b 将是完美的,但 c 将在某些时候被切断,很可能只丢失 š ā ē ž ķ 等等...我需要它包含所有可能的字符,而不是像现在这样忽略它们...... 我也建议使用 jQuery 或其他一些 Ajax 库。

以上是关于AJAX POST 发送的 Javascript 数组的主要内容,如果未能解决你的问题,请参考以下文章

将 PHP $_POST 数组传递给 javascript/jQuery 以通过 ajax 发送回 PHP

使用ajax post将图像从本地商店发送到mysql

$.ajax Post 请求不发送 POST 数据

ajax发送请求

如何通过ajax从表单发送POST数据数组?

JavaScript 在jQuery发送Ajax请求