我的表格
<form action="test.php" name="form" method="post">
<label>msisdn :-</label>
<input type="text" name="msisdn" />
<br>
<br>
<label>command :-</label>
<input type="text" name="command" value="getimis" />
<br>
<br>
<label>username :-</label>
<input type="text" name="name" />
<br>
<br>
<label>password :-</label>
<input type="text" name="password" />
<br>
<br>
<input type="submit" name="submit" />
</form>
=&GT;如何在此网址http://206.190.228.185/vl/vl_api_bill.php
=&GT;在这个formate xml请求发送到提交按钮点击post url ..
请求
<bill-request>
<msisdn>123456789</msisdn>
<command>getimsi</command>
<username>bob</username>
<password>dcba</password>
</bill-request>
响应
<bill-response>
<status>success</status>
<msg>123456789</msg>
</bill-response>
答案 0 :(得分:2)
你不能直接从html格式发送xml数据。你可以使用jquery ajax来完成这个。
添加onclick以提交按钮,停止默认事件并使用jquery ajax发布xml数据
<input type="submit" name="submit" onclick="funcName(event)"/>
<script>
function funcName()
{
event.preventDefault();
var msisdn = document.getElementsByName("msisdn")[0].value;
var command = document.getElementsByName("command")[0].value;
var username = document.getElementsByName("name")[0].value;
var password = document.getElementsByName("password")[0].value;
var data = '<bill-request><msisdn>' + msisdn + '</msisdn><command>' + command + '</command><username>' + username + '</username> <password>' + password + '</password></bill-request>';
$.ajax({
type: 'POST',
url: 'url',
dataType: 'xml',
data: data,
contentType: 'application/xml;',
success: function (response) {},
error: function (ex) {}
});
}
</script>
答案 1 :(得分:0)
HTML表单可以application/x-www-form-urlencoded
格式(紧凑),multipart/form-data
格式(支持文件上传)或text/plain
格式发送数据(没有实际用途,不是&#39用其他工具更好地服务。)
XML不是一种选择。
如果您需要从浏览器发送XML,则必须使用JavaScript。您可以使用DOM从表单中提取数据,构建XML,然后使用XMLHttpRequest对象发送它。
答案 2 :(得分:-1)
您可以使用以下代码
<?php
error_reporting(0);
function to_xml($arr,$wrapper = 'bill-request',$cycle = 1)
{
$new_line = "\n";
if($cycle == 1) { $output = '<?xml version="1.0" encoding="UTF-8" ?>'.$new_line; }
$output.= tabify($cycle - 1).'<'.$wrapper.'>'.$new_line;
foreach($arr as $key => $val)
{
if(!is_array($val))
{
$output.= tabify($cycle).'<'.htmlspecialchars($key).'>'.$val.'</'.htmlspecialchars($key).'>'.$new_line;
}
else
{
$output.= print_r_xml($val,$key,$cycle + 1).$new_line;
}
}
$output.= tabify($cycle - 1).'</'.$wrapper.'>';
return $output;
}
function tabify($num_tabs)
{
for($x = 1; $x <= $num_tabs; $x++) { $return.= "\t"; }
return $return;
}
$xml= to_xml($_POST);
print_r($xml);
?>
<form name="form" method="post">
<label > msisdn :- </label>
<input type="text" name="msisdn" /><br><br>
<label> command :- </label>
<input type="text" name="command" value="getimis" /><br><br>
<label> username :- </label>
<input type="text" name="name" /><br><br>
<label> password :- </label>
<input type="text" name="password" /><br><br>
<input type="submit" name="submit"/>
</form>