我是Javascript,PHP和XML的新手。 我的问题是这样的。 我正在使用此网络服务http://www.webservicex.net/country.asmx?op=GetCountries (这是WSDL:http://www.webservicex.net/country.asmx?WSDL) 我正在使用Jquery BTW。 作为我的应用程序的一部分,我试图通过Javascript将每个国家从响应中转换为HTML选择。 但我无法找到如何访问该响应的每个特定元素(国家/地区)。
到目前为止,这些是我的代码:
PHP
<?php
$url1 = "http://www.webservicex.net/country.asmx?WSDL";
$client = new SoapClient($url1);
$Res = $client->GetCountries();
echo json_encode($Res);
?>
的Javascript
这里我应该在加载时填充select,但是我甚至无法访问响应的元素,所以我只是想在div元素中打印一些东西用于测试目的。
window.onload = function() {
$.post("process.php", {}, function(response) {
var str_res = JSON.parse(response);
document.getElementById("Section2").innerHTML = str_res[1];
console.log(response);
}
}
我知道“str_res [1]”不起作用,但这正是我想弄清楚的。如何访问响应元素。 例如,获取“Aruba”并打印或将其添加到我提到的选项中。 我希望我能够解释我的担忧,并提前感谢!
答案 0 :(得分:0)
试试这个
test.html文件
<html>
<body>
this is html page, wait to load result
<select id="dropdown"></select>
<script
src="https://code.jquery.com/jquery-3.1.1.min.js"
integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
crossorigin="anonymous"></script>
<script type="text/javascript">
$.post("test.php", {}, function(response) {
var str_res = JSON.parse(response);
// console.log(str_res);
$.each(str_res, function(i, item) {
//console.log(str_res[i]);
//console.log('-------');
$('#dropdown').append($('<option>', {
value: str_res[i],
text : str_res[i]
}));
});
});
</script>
</body>
</html>
test.php文件
<?php
$url1 = "http://www.webservicex.net/country.asmx?WSDL";
$client = new SoapClient($url1);
$Res = $client->GetCountries();
$xml = simplexml_load_string($Res->GetCountriesResult);
$data = array();
foreach ($xml->Table as $key => $value) {
array_push($data,(string)$value->Name);
}
//print_r($data);
echo json_encode($data);
?>