Boa tarde a todos,
Estou a tenta retornar um array key => Value de um servidor soap em php, mas não estou a conseguir, nesse sentido solicitava a vossa ajuda.
O objecto é que uma interface php receba um array com informações para preencher uma combo box automaticamente sendo que os dados estão numa base de dados.
A minha configuração é a seguinte:
Interface cliente faz um pedido ao web service soap:
Código (PHP):
No web service soap tenho a função registada da seguinte forma:
Código (PHP):
A função propiamente dita é:
Código (PHP):
O que está a retornar como saída de dados é:
Array
(
[faultcode] => SOAP-ENV:Server
[faultactor] =>
[faultstring] => unable to serialize result
[detail] =>
)
Acham que me podem ajudar a perceber o que se passa aqui?
Obrigado.
Estou a tenta retornar um array key => Value de um servidor soap em php, mas não estou a conseguir, nesse sentido solicitava a vossa ajuda.
O objecto é que uma interface php receba um array com informações para preencher uma combo box automaticamente sendo que os dados estão numa base de dados.
A minha configuração é a seguinte:
Interface cliente faz um pedido ao web service soap:
Código (PHP):
$result = $client->call('fill_veiculo');
echo '<pre>';
print_r($result);
echo '</pre>';
echo "Veiculos: <select name='veiculos'>";
foreach ($result as $key => $value){
echo "<option value=".$key.">".$value."</option>";
}
echo "</select>";
echo "<input type='submit' name='pesquisar' value='Pesquisar'>";
echo '<pre>';
print_r($result);
echo '</pre>';
echo "Veiculos: <select name='veiculos'>";
foreach ($result as $key => $value){
echo "<option value=".$key.">".$value."</option>";
}
echo "</select>";
echo "<input type='submit' name='pesquisar' value='Pesquisar'>";
No web service soap tenho a função registada da seguinte forma:
Código (PHP):
$server->register('fill_veiculo', // method name
array(), // input parameters
array('return' => 'tns:ArrayOfString'), // output parameters
'urn:transporteswsdl', // namespace
'urn:transporteswsdl#fill_veiculo', // soapaction
'rpc', // style
'encoded', // use
'Says hello to the caller' // documentation
);
array(), // input parameters
array('return' => 'tns:ArrayOfString'), // output parameters
'urn:transporteswsdl', // namespace
'urn:transporteswsdl#fill_veiculo', // soapaction
'rpc', // style
'encoded', // use
'Says hello to the caller' // documentation
);
A função propiamente dita é:
Código (PHP):
function fill_veiculo(){
$conn = mysqli_connect ("localhost","root","master","engenhariasoftware");
$sql = "SELECT * FROM Veiculo;";
$result = mysqli_query ($conn, $sql);
$arr = array();
while ($row = mysqli_fetch_assoc($result)){
$arr[] = array('id' => $row["idVeiculo"], "matricula" => $row["matricula"]);
//$arr = array('1' => 'teste');
//$arr = array('return' => array($row["idVeiculo"] => $row["matricula"],));
}
//$result = mysql_fetch_array($arr);
mysqli_close ($conn);
return $arr;
}
$conn = mysqli_connect ("localhost","root","master","engenhariasoftware");
$sql = "SELECT * FROM Veiculo;";
$result = mysqli_query ($conn, $sql);
$arr = array();
while ($row = mysqli_fetch_assoc($result)){
$arr[] = array('id' => $row["idVeiculo"], "matricula" => $row["matricula"]);
//$arr = array('1' => 'teste');
//$arr = array('return' => array($row["idVeiculo"] => $row["matricula"],));
}
//$result = mysql_fetch_array($arr);
mysqli_close ($conn);
return $arr;
}
O que está a retornar como saída de dados é:
Array
(
[faultcode] => SOAP-ENV:Server
[faultactor] =>
[faultstring] => unable to serialize result
[detail] =>
)
Acham que me podem ajudar a perceber o que se passa aqui?
Obrigado.