我目前有一个Web服务(C#),它以PHP的形式向我的客户端返回一个字符串数组。
我想用数组结果中的字符串元素填充下拉列表。
使用以下代码,下拉列表中不会显示任何项目。
<select name="name-list" id="name-list" class="pulldown" onchange="exportName();" >
$client = new SoapClient("http://localhost/MyService.asmx?wsdl", array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));
$res = $client->GetServiceArray()->GetServiceArrayResult;
$array = (array)$res->ArrayOfString;
foreach($array as $val)
{
echo "<option value=\"" . $val . "\">" . $val . "</option>\n";
}
?>
我还完成了var_dump($ res)以确保Web服务正在返回数据。我可以确认值显示在页面源中。
这一行似乎无能为力:
$array = (array)$res->ArrayOfString;
有没有其他方法可以做到这一点?
我可以就如何制作这些物品提出一些建议。
谢谢。
答案 0 :(得分:0)
应该是
foreach($array as $val)
{
echo "<option value='$val'>$val</option>";
}
答案 1 :(得分:0)
很可能你需要这样做
echo "<option value=\"" . $val . "\">" . $val . "</option>\n";
并且不要忘记逃避$ val,因为如果里面有任何引用字符,它们将破坏你的HTML。你可以使用
$val = addslashes($val);
答案 2 :(得分:0)
可$client->GetServiceArray()->GetServiceArrayResult
实际上是一个函数吗?
那应该是$client->GetServiceArray()->GetServiceArrayResult()
。
无论如何,如果$ res确实包含任何数据,您应首先检查:var_dump($res);