且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何通过HTML表单将XML发布到服务器?

更新时间:2022-12-06 16:39:12

我能想到的***方法是拦截表单提交操作,并将表单细节转换为XML格式,然后将其提交给服务器。有很多方法可以做到这一点,但最简单的方法是通过像jQuery这样的框架来实现一个解决方案:



这个例子可以在 http://www.docunext.com/...data-to-xml-with-jquery 它利用 JSON to XML Plugin

  $(#myform)。submit(function(){
var formjson = $('#myform')。serializeArray();
$ b $ .post(/ collect.php,{'data':formxml},function(data){
//回调逻辑
});
return false;
});


I have to post data from my HTML form to server in xml format, something like:

<some_parameters>
    <firstname>Homer</firstname>
    <lastname>Simpson</lastname>
    <street>74 Evergreen Tr.</street>
</some_parameters>

All I know is it goes to one of the CRM applications run on different domain. Now I'm not sure what is the best way to do this.

I was thinking of just wrapping values of fields in my form when user submits the form. So if user typed "Homer" in "firstname" field and clicks submit, my JS would change the value of the field to <firstname>Homer</firstname> and then post the data.

If it helps I'm using jQuery on client side. I think there must be the better way as my solution would break with JS disabled and seems a bit dodgy so if you could point me in the right direction that would be awesome.

The best way I can think of is to intercept the form-submit action, and convert the form details into XML format, and then submit that to the server. There are many ways to do this, but the easiest would be to implement a solution via a framework like jQuery:

An example of this very thing can be found online at http://www.docunext.com/...data-to-xml-with-jquery which utilizes the JSON to XML Plugin:

$("#myform").submit(function(){
  var formjson = $('#myform').serializeArray();
  var formxml = json2xml(formjson);
  $.post("/collect.php", { 'data': formxml }, function(data){ 
    // callback logic
  });
  return false;
});