我正在尝试将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();
}
答案 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