将XML数据发送到MySQL数据库

时间:2014-01-31 17:47:10

标签: jquery mysql xml forms

我正在尝试将XML对象发送到数据库。我有一些表格的POST数据,我转变成一个XML对象,我希望以一种方式发送到数据库,这将允许表单创建额外的输入,然后我可以调用并使用XML对象填写表单以防用户想要编辑其表单。如何以这种方式发送此数据?任何和所有的帮助将不胜感激!感谢gfrobenius,这就是我创建XML对象的方法:

JQuery:

//Grab all the POST info, turn it into a valid XML object and store it
$postData = null;
if($_SERVER['REQUEST_METHOD'] == 'POST' && count($_POST) > 0) $postData = assocArrayToXML('POST_DATA',$_POST);
//The assocArrayToXML returns the XML object with page breaks, we need a stright non-breaking string
//so that the flexigrid can display the results properly.
$postData = str_replace(chr(13), '', $postData);
$postData = str_replace(chr(10), '', $postData);

功能:

 function assocArrayToXML($root_element_name,$ar)
    {
      $xml = new SimpleXMLElement("<?xml version=\"1.0\"?><{$root_element_name}></{$root_element_name}>");
      $f = create_function('$f,$c,$a','
              foreach($a as $k=>$v) {
                  if(is_array($v)) {
                      $ch=$c->addChild(htmlspecialchars($k));
                      $f($f,$ch,$v);
                  } else {
                      $c->addChild($k,htmlspecialchars($v));
                  }
              }');
      $f($f,$xml,$ar);
      return $xml->asXML();
    }

1 个答案:

答案 0 :(得分:1)

我不确定XML对象是什么,但这就是我将XML传递给数据库的方式。

我使用ajax(jQuery或纯JS)将它从客户端传递到一些服务器代码(页面或Web服务中的webmethod),它挂钩到数据库中,将XML字符串作为参数传递给存储过程或参数化的sql。

应该是大约20-30行代码,并且有一百万个地方你可以在网上找到关于如何做到这一点的例子。

编辑:

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

JavaScript示例:https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started